|
|
发表于 2011-7-25 19:07:25
|
显示全部楼层
来自: 中国广东广州
做SW二次开发的同学,可以自己写段代码来清内存,在处理完成时执行一下ClearMemory方法即可。5 z1 c2 {/ c2 x# K: i s
代码如下:/ j% C# O+ }9 c
using System.Runtime.InteropServices;4 N( |" h! Q R
using System.Diagnostics;
/ e" { w+ b/ w; u9 w& s
; d" v: W3 B$ Q1 I [DllImport("psapi.dll")]9 S# v: z% [& z, Q9 |
static extern int EmptyWorkingSet(IntPtr hwProc);
; T& y: A) \2 i* [3 e$ `/ \ B3 t
* z- q$ j/ ^5 K# J u, J( P public void ClearMemory()! t6 x* R2 r( q2 k* r/ [
{* L3 o! D9 z- x) R+ X. o% H- \# {
Process[] process;//这个数组存放当前的所有进程信息
% ~7 u/ y- p# _7 Q8 t( S. {. z/ s; J process = Process.GetProcesses();//取得进程信息, k) L3 w" P1 m- u) {! a L: N
for (int i = 0; i < process.Length; i++)7 M: Q. w" J ], z- T! T' W
{
* i, j0 \# S4 c2 C: e- { try( R/ D& d& j4 ?0 l9 O9 {
{
% B" b$ F1 Y6 @2 r+ \7 @ EmptyWorkingSet(process[i].Handle);//依次释放每个进程的内存
% U I- q7 h$ N+ D3 ? }
( }7 Z/ }: T+ u. Z! a catch
% ~3 i% |+ M: u$ \ {
4 W7 R: K6 ?3 l
, n) [. X b7 [% V) |1 t0 q }- r- M" Y! D1 ^" g8 U2 h
}
. ], d8 C9 D+ g* i
" l2 L2 p! s/ C ^5 M } |
|