【发布时间】:2009-11-04 05:59:02
【问题描述】:
当你开始一个过程并且不关心结果时这样可以吗?
Process.Start(xxx);
或者你应该这样做
using (Process.Start(xxx)){}
【问题讨论】:
-
请注意,使用
u之类的缩写通常会让人感觉很糟糕...
标签: .net process idisposable
当你开始一个过程并且不关心结果时这样可以吗?
Process.Start(xxx);
或者你应该这样做
using (Process.Start(xxx)){}
【问题讨论】:
u 之类的缩写通常会让人感觉很糟糕...
标签: .net process idisposable
查看Process.dispose(bool) 方法的实现表明它在Process 实例上调用Close()。这反过来又清理了本机进程句柄,因此这可能不是一个坏主意。
它还清理用于检查进程是否已退出的等待句柄。
即使你不使用using (...) 块,终结器最终也会捕获这些资源。
【讨论】:
Process.Start 返回的Process 对象包含一个Windows 进程HANDLE,因此一旦您不再需要使用Process 对象,就应该将其释放。
如果您根本不需要使用返回的Process 对象,那么您显示的空using 块就可以了。请注意,处理 Process 会释放句柄,但它(幸运的是)不会停止进程的执行。
【讨论】: