|
|
发表于 2011-7-25 19:07:25
|
显示全部楼层
来自: 中国广东广州
做SW二次开发的同学,可以自己写段代码来清内存,在处理完成时执行一下ClearMemory方法即可。; k1 {; s; T; B, B. O
代码如下:( r: I; s% ^& I, K- l) I# z
using System.Runtime.InteropServices;
+ f' n! b0 \; | o using System.Diagnostics;
2 t g- Y4 X) B' k
5 G- ^) b- e. F$ p8 R1 p8 s [DllImport("psapi.dll")]
4 ~2 O! N* I9 o+ e- x; d static extern int EmptyWorkingSet(IntPtr hwProc);
( d6 C* G( T; Y, c e- O9 r! e+ H3 S0 ?5 ^! A
public void ClearMemory()+ b( G: k/ ], G8 Q: r
{; V8 b) L' y% k0 C# N+ ?
Process[] process;//这个数组存放当前的所有进程信息
: A" {4 \* x+ T! H B1 ^+ o process = Process.GetProcesses();//取得进程信息% q7 k4 o; W6 ?3 R3 q' I
for (int i = 0; i < process.Length; i++)# u7 }& |- n2 C7 m. N4 n t: p- Y% F- J
{
0 O0 J1 Z& t H/ V {: [" w try
& y; D* V D' h' T { ( _+ P: p8 b! F
EmptyWorkingSet(process[i].Handle);//依次释放每个进程的内存# R7 V. A# t. f, u9 ]# A
}1 P$ A( z. t3 m- x0 L& s
catch
6 y( F: O1 y7 i; q$ g% { {
+ ]) P9 d" S/ [- w. ?) O0 T
" K7 e0 y6 b' l6 c$ z8 t }) f7 z/ f) J6 Q, b' h7 V
}
3 H) j/ h: `3 e
. [& Q% |- m8 X } |
|