Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从c#项目调用另一个流程?_C#_Wpf_Serial Port - Fatal编程技术网

如何从c#项目调用另一个流程?

如何从c#项目调用另一个流程?,c#,wpf,serial-port,C#,Wpf,Serial Port,是否可以从主程序调用某些进程(或exe),向其发送一些参数,完成一些处理并返回结果?如果可能,哪种方法是最好的 我有一个管理磨坊的wpf应用程序。此应用程序用于不同的磨机。唯一的区别是磨机中用于称重的串行端口通信不同。目前,称重部分已编程到应用程序中。但这使得维护变得很困难,因为我必须根据地磅拥有不同版本的项目。所以我希望它是这样的:我有主项目的单一版本。主项目调用另一个进程(或exe)并发送一些参数。此exe进行称重并发回重量 如果您只有另一个exe文件,那么您可以使用(取自) 改为使用库项

是否可以从主程序调用某些进程(或exe),向其发送一些参数,完成一些处理并返回结果?如果可能,哪种方法是最好的


我有一个管理磨坊的wpf应用程序。此应用程序用于不同的磨机。唯一的区别是磨机中用于称重的串行端口通信不同。目前,称重部分已编程到应用程序中。但这使得维护变得很困难,因为我必须根据地磅拥有不同版本的项目。所以我希望它是这样的:我有主项目的单一版本。主项目调用另一个进程(或exe)并发送一些参数。此exe进行称重并发回重量

如果您只有另一个exe文件,那么您可以使用(取自)


改为使用库项目(DLL)。你编写了第二个进程吗?@Micah Armantrout:没有,只是想知道我应该创建一个单独的exe还是按照SLaks@sony这实际上是教科书对库的定义。@索尼:我建议创建一个库项目,它将拆分出一个DLL。然后,您可以通过将DLL添加为对主项目的引用来调用DLL上的方法。您希望尽可能多地重复使用代码。例子:
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = false;
startInfo.UseShellExecute = false;
startInfo.FileName = "dcm2jpg.exe";
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = "-f j -o \"" + ex1 + "\" -z 1.0 -s y " + ex2;

try
{
        // Start the process with the info we specified.
        // Call WaitForExit and then the using statement will close.
        using (Process exeProcess = Process.Start(startInfo))
        {
           exeProcess.WaitForExit();
        }   
}
catch
{
    // Log error.
}