关于“监视进程”的问题。
为了监视一个程序是否正在运行,我采取的办法是监视进程(Process)是否存在,一旦不存在,就证明程序没有运行。(请问有没有更好的办法?)
监视的时候,我试了两种方法——
①新建一个线程,用“死循环”,也就是死盯着用Process.GetProcessesByName(进程名)这个数组的长度是不是0,如果是0说明程序Over了。结果一运行,目的是达到了,可惜CPU的资源一下子就上到了100%——有没有好办法?
②用Timer控件,1秒(半秒、300毫秒、100毫秒……)钟查一次。结果我发现,Timer的间隔越小,CPU的占用率越高——有没有更好的办法?
注:间隔1秒(1%-2%),间隔半秒(4%±),100毫秒(40%±),10毫秒(100%)