当前位置: 首页 > 编程语言 > C#

使用块共享

时间:2023-04-11 01:58:15 C#

使用块既然System.Diagnostics.Process继承了自己实现的IDisposableComponent,那我是不是应该一直用block来创建Process呢?例如,这个...:过程。开始();过程.WaitForExit();}...而不是这个:varprocess=newProcess{StartInfo={FileName="someprocess.exe"}};过程。开始();过程.WaitForExit();我问是因为我很少看到Process出现在using块中;例如,ProcessMSDN页面没有使用它。使用对象初始值设定项也很有帮助。如果我应该使用它,我应该将它“改造”到我现有的代码库中吗?不这样做的后果是什么?(假设在每种情况下都正确调用了WaitForExit()。)如果您不使用或不能使用using(),则应确保过程变量在不再需要时被处理掉。如果在类(而不是程序或方法)中使用流程变量,则该类应实现IDisposable,然后在其Dispose(bool)方法中调用_process.Dispose:voidDispose(booldisposing){...if(_process!=null){Dispose(_process);}}如果没有_process字段,只有您在方法中使用的过程变量,则必须在方法中处理它:voidMyMethod(){varprocess=......useithere...process.处置();}MSDN示例是人为设计的。打开进程句柄的程序在启动进程后立即退出。当程序退出时,它打开的所有句柄都会关闭。如果一个进程句柄是打开的,它应该被关闭。Component.Dispose的Process.Dispose覆盖仅调用Process.Close。using语句简化了这一点。以上就是C#学习教程:UsingBlocksUsingBlocks的全部内容分享。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: