|
|
发表于 2011-7-25 19:07:25
|
显示全部楼层
来自: 中国广东广州
做SW二次开发的同学,可以自己写段代码来清内存,在处理完成时执行一下ClearMemory方法即可。
7 y0 L- J# F- t1 h/ I9 H代码如下:
3 g& Z! B% Z$ S+ z. @& F) B( v2 B/ B using System.Runtime.InteropServices;7 w0 y! J" T) b! m' u" m
using System.Diagnostics;
# j% K9 E7 v& r/ {' `: u U7 b$ _- |1 W3 T# l$ |( R
[DllImport("psapi.dll")]/ l: c1 Q6 b3 x. y+ W0 j- k& A1 N. p
static extern int EmptyWorkingSet(IntPtr hwProc);
" m: a- }( o" O/ z* h% k0 d& W$ t3 ^ D$ a8 v) e1 P
public void ClearMemory()( H6 V8 k. C: h
{ S) w! i! ]# e& P' `2 s' N! F
Process[] process;//这个数组存放当前的所有进程信息3 e) c8 l+ [: m
process = Process.GetProcesses();//取得进程信息5 m( F4 J7 d( G) a
for (int i = 0; i < process.Length; i++)
# p: Z* I/ y, @( \ }/ Z( { {1 A; V+ I$ G1 K: ^. [/ Z7 R8 S! [
try ^9 Y- }+ v, X- z; @% { h
{ % R$ g2 Q7 ^" c8 x& R2 v! D
EmptyWorkingSet(process[i].Handle);//依次释放每个进程的内存0 ?5 b8 g/ y+ K
}
i8 f; e9 _/ l catch
2 P/ L3 M [% w3 i {5 D- @' D( s7 ~+ f; Y- y8 N [3 U
0 j2 @8 n" q; @: b. r }3 R" S. h2 b1 i: z- Y4 g1 G, r
}3 w9 q0 c1 \- R
) E* }/ J6 W) i" J5 e& Q } |
|