您的位置:首页 > 编程语言 > C#

C#Process多线程使用&&StartInfo空格处理方法

2015-10-07 21:02 239 查看
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">以下内容均参考网络上的资料整理完成,在此仅仅是本人的一个整理记录。</span>

在项目中为了提高项目的效率,大量运算部分都使用C/C++编译成exe,然后使用C#制作外壳。

一、C#Process多线程使用

使用C#的Process类进行调用其他exe完成一些既定任务,主界面和调用的exe需要使用两个线程进行维护,这样不至于产生主界面假死现象。

使用的是Thread类,可以简单贴代码如下:

private void Button_Click(object sender, EventArgs e)
{

//启动一个子线程去处理后续任务
Thread thread = new Thread(new ThreadStart(function_Click));
thread.Start();
}
public void function_Click()
{
//调用进程
string argument1 = "\"" + argv1 + "\"";
string argument2 = "\"" + argv2 + "\"";
Process process = new Process();
process.StartInfo.FileName = System.Environment.CurrentDirectory + "//test.exe";
process.StartInfo.Arguments = argument1 + " " + argument2;
process.StartInfo.UseShellExecute = true; ;
//启动
process.Start();
//必须先暂停一下,主线程不能运行
process.WaitForExit();
//结束
process.Close();
}


本次就先这样简单使用,算有一个简单的认识。

2.StartInfo参数空格问题

因为StartInfo.Arguments中参数的间隔是根据空格进行分断的,因此如果Arguments中某一个参数中如果包含空格将会导致出现错误的传参;

为了解决该问题,使用“\"”分别添加在每一个参数的前后即可,上文的代码块中也是如此解决的;

经过测试该方法还是可靠的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: