简单的问题:我想使用默认浏览器打开一个URL,所以我只是做Process.Start(url)
。但是,我注意到这返回一个IDisposable对象。我是否必须处理Process.Start(url)?
所以现在我想知道我是否必须处置它?或者,就此而言,如果我的应用程序以任何方式对此过程负责?预期的功能只是简单的“火和遗忘”,我不希望我的应用程序作为新流程的父项,并且它不需要与它进行交互。
我见过一些类似但不相关的问题,似乎只是简单地调用URL上的Process.Start是好的,但我不想遇到一些难以调试引起的内存泄漏/资源耗尽问题我的程序保持对长期死亡的浏览器进程的引用。
问题是我没有完全理解这种情况下的对象生活。如果我使用(Process.Start(url));那么它会在那个时候等待?或者是否会将流程部署到早期?目前,这在行为上没有任何区别,所以我认为没有任何资源是公开的,但我不确定,我不知道如何衡量。 – 2009-08-06 20:34:10
由于“using”子句隐含地指示编译器构建try/finally并实现dispose,并且它们返回的是IDisposable对象,所以我认为您可以安全地执行此操作。通过不分配它,你可能会占用资源。你可以尝试构建一个循环,打开几个URL而不用处理它们,并查看你的资源是否失去控制,并通过将它们包装在使用子句中进行另一个测试。需要注意的是,之后你会有一堆窗户关闭。 :) – Fooberichu 2009-08-06 20:49:48