在C#中class Process继承了class Component该实现IDisposable,因此我可以调用Dispose()任何Process对象.我真的需要吗?我怎么知道我是否真的需要?
假设我有以下代码:
var allProcesses = System.Diagnostics.Process.GetProcesses();
var processesNames = processes.Select( p => p.ProcessName );
// output process names here
Run Code Online (Sandbox Code Playgroud)
现在看起来我有一个Process对象数组,我已经设计了try-finally遍历数组和Dispose()每个对象.这肯定是很多额外的代码.
这Dispose()对Process物体有什么作用?我是否真的需要Dispose()每个Process对象,我如何决定是否需要这样做?
可能重复:
如何从C#启动进程?
我想启动在命令行中运行的外部可执行文件来执行某项任务.完成后,我想检查它返回的错误代码.我该怎么做?
如何从C#代码中启动另一个应用程序?我无法让这件作品正常工作
System.Diagnostics.Process.Start(@"%userprofile%\AppData\Local\Google\Application\chrome.exe");
Run Code Online (Sandbox Code Playgroud)
编辑:哇,我是愚蠢的,只是注意到我在文件路径中忘记了什么.感谢他们的答案,虽然他们帮助教我一些其他有用的东西.
我在我的服务器上使用psexec在另一台服务器上运行exe文件.如何将参数传递给其他exe?
我在我的服务器上运行的exe是psexec,而后者必须运行位于另一个系统上的名为vmtoolsd.exe的exe.如何将参数传递给vmtoolsd.exe?另外,我在哪里通过它?我会将它作为info.Arguments的一部分传递给我吗?我试过了,但它不起作用.
ProcessStartInfo info = new ProcessStartInfo(@"C:\Tools");
info.FileName = @"C:\Tools\psexec.exe";
info.Arguments = @"\\" + serverIP + @"C:\Program Files\VMware\VMwareTools\vmtoolsd.exe";
Process.Start(info);
Run Code Online (Sandbox Code Playgroud)
另外,作为info.Arguments的一部分,我必须在vmtoolsd.exe的路径前加上IP地址,然后是驱动器路径?
在 .NET Framework 中我可以简单地做但在Process.Start(filename);.NET Core 中我得到这个异常:
System.ComponentModel.Win32Exception: '指定的可执行文件不是此操作系统平台的有效应用程序。'
如何从testfile.txt我的默认应用程序开始?谢谢!
使用C#和.NET框架在Windows上从胖客户端应用程序打开URL的首选方法是什么?我希望它使用默认浏览器.
我想知道是否可以从 WPF 应用程序启动控制台应用程序。
在我的控制台应用程序中,我添加了一个名为 Reports 的类。在我的 WPF 应用程序中,我创建了一个 Reports 对象并调用其公共方法之一。
它调用的方法包含以下代码。问题在于代码不会等待用户输入任何输入,因此它会在 ValidateUserInput 中崩溃。我也没有看到任何控制台应用程序实际加载。我看不到如何在我的控制台应用程序中调用 Program 类的 Main 方法。你可能会说我很迷茫。
Console.WriteLine("*** Running Report ***");
Console.WriteLine("User enter something:");
string myStr = Console.ReadLine();
ValidateUserInput(myStr);
Run Code Online (Sandbox Code Playgroud)