|
|
发表于 2011-7-25 19:07:25
|
显示全部楼层
来自: 中国广东广州
做SW二次开发的同学,可以自己写段代码来清内存,在处理完成时执行一下ClearMemory方法即可。* D# `. [8 I g: r3 }, S6 M8 \9 ^" ?0 O
代码如下:& \, [: R- l; ?# L0 m, `
using System.Runtime.InteropServices;
9 L$ P. N3 [) ~ using System.Diagnostics;
& u% m8 K/ X, O. w$ @4 C0 [! G, |/ c* ~4 i, F
[DllImport("psapi.dll")], |3 Z: G* @6 g2 n3 e0 J
static extern int EmptyWorkingSet(IntPtr hwProc);
- s" W4 Q0 l1 s- G) R/ o8 @, E5 N& {* V" E5 e# H
public void ClearMemory()& c, @* R/ Q9 x9 o/ J5 q. G
{
% _0 J0 p6 ?& _ t g1 J' y3 u Process[] process;//这个数组存放当前的所有进程信息
7 G/ z5 z" `8 ^; a% X process = Process.GetProcesses();//取得进程信息
0 U N; M4 ^) v r ^4 r for (int i = 0; i < process.Length; i++)6 X6 j3 L6 A) z1 V* m0 G8 M7 l1 O
{
' C. b1 A" I" H2 a" O6 Q6 x try
! {( ]( [; d( n5 X7 } {
$ i O' ?0 l! _. e& a* U% n9 I EmptyWorkingSet(process[i].Handle);//依次释放每个进程的内存! s4 a! y6 s/ M
}) l- l. u% ~# l( r3 B! ]
catch8 i6 B/ I, {% W! d$ v4 P& o
{
+ v- y$ F4 S+ Q0 q- G+ I: n) g+ w
8 R% [6 P- a% {4 K7 D7 t }" Q' a8 U0 S% ^2 F
}1 b9 j n' k$ S1 j; `
! ]. }$ o% P$ c* ]! _, r0 Z) Z7 P } |
|