c# - 没有 WaitForExit() 的 using 语句中的进程会发生什么情况?

标签 c# process idisposable using

在下面的示例中,如果在代码离开 using 语句后进程仍在运行,会发生什么情况?

using (var p = new Process())
{
    p.StartInfo.FileName = "c:\\temp\\SomeConsoleApp.exe";
    p.Start();
}

最佳答案

应该将在您的系统上运行的操作系统进程与代表程序中它的“句柄”的Process对象分开:

  • 该进程会继续运行直到它完成,或者您使用特定于操作系统的方法终止它
  • Process 对象被释放,因此您的程序无法再与操作系统进程交互。

Process 对象上调用 Dispose() 方法不会终止操作系统进程。

关于c# - 没有 WaitForExit() 的 using 语句中的进程会发生什么情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27300821/

相关文章:

c# - 使用 mysql 和 c# 恢复功能不起作用

c# - 为什么 Assembly.GetType() 找不到我的类(class)?

java - 识别流程的操作

.net - 为 .NET 应用程序指定不同的配置文件

android - 获取单个正在运行的进程开始时间

C# 内存使用过多

c# - using block 是否保证对象在 block 结束之前不会被释放?

c# - 如何动态填充图片框

c# - 通过引用传递 IDisposable 对象会导致错误?

c# - AutoMapper MaxDepth() 方法