引用an answer问题" How to open a URL in chrome incognito mode":
我写了这个并且成功了:
Process.Start(@"chrome.exe", "--incognito http://domain.com");
有人回复了this comment:
您需要处置该对象,否则您将发生内存泄漏。
我通常用Process.Start
创建许多进程,但我从来没有"处置"他们这是什么以及我该怎么做?
答案 0 :(得分:2)
根据MSDN上的组件文章,这是正确的。您应该在使用后丢弃Process
对象,释放任何非托管资源(应用程序不会关闭)。
组件应通过调用其Dispose方法显式释放资源,而无需通过对Finalize方法的隐式调用等待自动内存管理。放置Container时,Container中的所有组件也会被丢弃。
来自Process
article:
此类型实现IDisposable接口。使用完该类型后,应直接或间接处理。要直接处理类型,请在try / catch块中调用其Dispose方法。要间接处理它,请使用语言构造,例如使用(在C#中)或使用(在Visual Basic中)。有关更多信息,请参阅IDisposable接口主题中的“使用实现IDisposable的对象”部分。
Process
来自Component
,所以你应该处理它。它很容易:
Process myProc = Process.Start(@"chrome.exe", "--incognito http://domain.com");
myProc.Dispose();
甚至更容易
using (Process myProc = Process.Start(@"chrome.exe", "--incognito http://domain.com"))
{
//Do whatever with the process
}
当退出块时,using块将释放对象。
答案 1 :(得分:0)
使用Process.Close();
var Pro = new Process();
Pro.Start(@"chrome.exe", "--incognito http://domain.com");
Pro.WaitForExit(); //optional
Pro.Close();