|
|
发表于 2011-7-25 19:07:25
|
显示全部楼层
来自: 中国广东广州
做SW二次开发的同学,可以自己写段代码来清内存,在处理完成时执行一下ClearMemory方法即可。' I) B* E! A: N
代码如下:1 A; m3 {2 q& z% M, G" z( y8 h
using System.Runtime.InteropServices;: A8 M, R& z- f. m' s
using System.Diagnostics;
$ A7 M5 p5 L7 u5 D5 H
: Z& u2 ?/ c' N7 Y [DllImport("psapi.dll")]
* \- ~7 P6 y ]( W8 c1 h static extern int EmptyWorkingSet(IntPtr hwProc);
% U; U3 i$ E" ]7 o# G( {/ S& b8 F9 n+ t& d
public void ClearMemory()$ t0 L! r6 z0 B T4 M
{! H1 m9 ]! {, ? S
Process[] process;//这个数组存放当前的所有进程信息
' s" G: J8 w* }- \- w$ n1 [* ] process = Process.GetProcesses();//取得进程信息& ?) |6 c8 w4 n
for (int i = 0; i < process.Length; i++)
! w0 e! _2 h. i& L- A& D9 z5 g {0 H8 [, `8 y8 K; u* ^4 a
try
( x0 _7 G% g9 s# k { 7 X" z2 l8 e8 B. j
EmptyWorkingSet(process[i].Handle);//依次释放每个进程的内存3 z; C' J7 o4 B5 ~
}; t2 Z) Z9 N2 f, m- T* K2 L5 h* s
catch: m0 |0 T! [3 A: E3 x1 Z
{$ `" ?; r$ y; C, t$ Y
/ J& C) e w3 S& j# X! o6 _ }% }+ b* e; V, ]% L, g# z
} {( g+ ?4 p" r, \0 |
8 Z4 P6 u" h* F) a1 j' b1 H } |
|