|
|
发表于 2011-7-25 19:07:25
|
显示全部楼层
来自: 中国广东广州
做SW二次开发的同学,可以自己写段代码来清内存,在处理完成时执行一下ClearMemory方法即可。' N- h* o* q4 M* G
代码如下:; L! \2 f% X+ y q. N
using System.Runtime.InteropServices;. h9 g& `+ y( l/ B
using System.Diagnostics;+ ]" \ y2 L3 |/ R# f5 B
7 l) W% ^; P* Q: n [DllImport("psapi.dll")]
. O+ W$ Q7 ]8 [1 h E; Z" z$ N static extern int EmptyWorkingSet(IntPtr hwProc);* y# r* q1 D& a6 [
, V* t4 Z$ O* f public void ClearMemory()& O- x( y6 D- y7 s' F
{
6 }1 h( p: a/ y9 Y/ D Process[] process;//这个数组存放当前的所有进程信息
: b) a+ O6 Y' r3 e* e) t# L process = Process.GetProcesses();//取得进程信息
/ H0 ?$ A+ R& b& ` for (int i = 0; i < process.Length; i++)
8 I* U! D5 U# z* h" _! s* g {0 y& x d1 v9 i: M* k
try
1 O$ d; c& H# B( z { : t$ u& m* n- \% h- Q; T, O A1 q
EmptyWorkingSet(process[i].Handle);//依次释放每个进程的内存
3 V3 r8 e! n- Y( \5 ]( ~ }
' ?# d: f/ \5 ~ catch
4 R' j, V+ Z# r) H2 L) B5 g {7 B8 n! c% n0 Z. z. w
5 q/ J( M$ M1 b0 }! r8 J
}0 G$ t. W' b6 |
}
8 H7 R4 d" q9 `" U$ ~9 ?6 T/ N: _- {, w" I
} |
|