|
|
发表于 2011-7-25 19:07:25
|
显示全部楼层
来自: 中国广东广州
做SW二次开发的同学,可以自己写段代码来清内存,在处理完成时执行一下ClearMemory方法即可。: T. ?* M; _6 v9 L* v3 c
代码如下:
R; e" R2 G: S( ` using System.Runtime.InteropServices;
* P9 r2 r+ o& r7 }! U4 l; ]7 {) w using System.Diagnostics;
3 \/ m: ?/ ~! Z- W2 X, U' r
. }# {, R; M) N [DllImport("psapi.dll")]2 Q" A8 H( Y' U0 V1 ?
static extern int EmptyWorkingSet(IntPtr hwProc);. W& [6 z* u" Q* T
/ v& C& I' } r2 ?' I9 d+ u/ O
public void ClearMemory()2 F1 Y7 s, E4 i g+ p8 O
{
0 t- z% G4 `8 G0 l( ~) Z Process[] process;//这个数组存放当前的所有进程信息
+ T) K+ x- n7 B process = Process.GetProcesses();//取得进程信息
; F* J( ^* A: K5 O* H# {' Z for (int i = 0; i < process.Length; i++)
( `( d4 F1 T$ `3 x, j- M6 l {$ b+ w: k) d- ^6 h$ ]
try
' |" Y$ M3 `6 ~ { 9 }8 p+ z8 O& r0 K* k+ {. r
EmptyWorkingSet(process[i].Handle);//依次释放每个进程的内存8 M U9 e3 l) A& V
}
0 S7 c% Q3 J# i x catch% E8 N+ V& }5 i: A3 d! I
{
2 l4 @+ f7 M5 Q3 k' F) |5 l- Y# z2 H7 v
}7 t, p/ s8 e" o9 P
}
$ X* s) o1 G( k8 m+ U
; Q+ o n# c1 f } |
|