|
|
发表于 2011-7-25 19:07:25
|
显示全部楼层
来自: 中国广东广州
做SW二次开发的同学,可以自己写段代码来清内存,在处理完成时执行一下ClearMemory方法即可。
0 h! t" I3 Y7 A4 t$ j J% ]8 O! z代码如下:) U- V! C/ G( @4 k" K& d; ^
using System.Runtime.InteropServices;2 T2 |) T3 n/ b' _$ ]
using System.Diagnostics;& r$ K' ~+ k+ r5 e7 U& U
3 n6 l) q1 n; o: W, h9 ?3 X [DllImport("psapi.dll")]1 G( O: |, ~) G% V- p
static extern int EmptyWorkingSet(IntPtr hwProc);% \$ t" Q/ b% g8 d
0 B6 u( ?9 p% j9 T9 I public void ClearMemory()
7 @- j, c' x5 {5 u1 l$ ? {; A- `4 x9 E; C3 v- y
Process[] process;//这个数组存放当前的所有进程信息
e9 G% l% m( K' h( k9 w& B0 I process = Process.GetProcesses();//取得进程信息
( l& u" s' O" f6 f: j0 `% L3 K for (int i = 0; i < process.Length; i++)9 K3 m* ], l( R5 d
{
' M: D1 m. W7 e try
0 e$ T4 s8 C& M {
7 k5 A# [4 e0 Z, R+ w1 H EmptyWorkingSet(process[i].Handle);//依次释放每个进程的内存
6 U; E+ ?) a& z! O }
- x1 X3 o* J2 _+ I- U catch) I/ y% ?. A, P& a
{# X9 l7 Q9 ]; P) d& d
9 I* S' z j# `8 Y+ [ u" T
}3 S" K" D% t1 G
}3 W" A) w- h% v3 H5 o0 v
- [. A6 Y! t0 E: m
} |
|