在执行Process.Start()时,是否需要将其包装在using语句中?

9

当您开始一个过程并且不关心结果时,这样可以吗?

Process.Start(xxx);

或者你应该这样做。
using (Process.Start(xxx)){}

1
请注意,使用缩写诸如“u”通常是不得体的... - RCIX
2个回答

6

查看Process.dispose(bool)方法的实现可知,它会调用Process实例的Close()方法。这样可以清理本地进程句柄,因此这不是一个坏主意。

它还清理了一个等待处理程序,用于检查进程是否已退出。

即使您不使用using (...)块,最终器也会捕获这些资源。


3
Process.Start 返回的 Process 对象包含一个 Windows 进程 HANDLE,因此一旦您不再需要使用该 Process 对象,它应该被处理。
如果您根本不需要使用返回的 Process 对象,则显示的空 using 块就可以了。请注意,处理 Process 会释放句柄,但它(幸运的是)不会停止进程执行。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接