|
|
发表于 2011-7-25 19:07:25
|
显示全部楼层
来自: 中国广东广州
做SW二次开发的同学,可以自己写段代码来清内存,在处理完成时执行一下ClearMemory方法即可。
6 D2 t: P* X1 i/ ]8 @8 l4 }, y' D" B代码如下:
! ?. S8 E3 i! T9 X7 Q" v$ R* ` using System.Runtime.InteropServices;3 x4 M o% t5 p8 e; `
using System.Diagnostics;! d9 b5 x$ D9 m, ~* c4 P
2 O5 P, \' a) p W1 L! B, H [DllImport("psapi.dll")]
1 b8 S& o3 @5 {& U+ |: d5 T6 m static extern int EmptyWorkingSet(IntPtr hwProc);
0 {" ^7 t ]4 F; D9 U \' {5 B7 x) @8 y% T- h" M
public void ClearMemory()" p a% `6 r2 r) X( [7 v8 D
{
2 Z; c1 C( ^; B. @9 U2 o U, ~/ Y7 ^7 L Process[] process;//这个数组存放当前的所有进程信息: e: n7 x" y/ S3 b+ x3 }
process = Process.GetProcesses();//取得进程信息
: I( O3 J; N- Z+ J1 E9 w6 l5 @ for (int i = 0; i < process.Length; i++)
) p5 G0 ^ G- m' @# P. r8 c' m {2 ~2 |- J I5 v5 Q9 e) O7 L
try/ k: `- d& e9 T9 w7 r" _8 Z
{ / m q# a. [5 {% p$ G: b
EmptyWorkingSet(process[i].Handle);//依次释放每个进程的内存
; T6 O4 }! ?, J0 C: w } y. Z9 C2 R/ \- o' a2 ]
catch0 A9 u" L/ c, a' i' r$ E" r
{0 M; V; v0 O, x
- r. d" ^( I, C- B6 B }2 d& o4 I. ~$ _4 O
}8 z/ B3 Y- O0 `# ~3 \' a
* |) v, }% M$ q: _% Z: D } |
|