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中某一个参数中如果包含空格将会导致出现错误的传参;
为了解决该问题,使用“\"”分别添加在每一个参数的前后即可,上文的代码块中也是如此解决的;
经过测试该方法还是可靠的。
在项目中为了提高项目的效率,大量运算部分都使用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中某一个参数中如果包含空格将会导致出现错误的传参;
为了解决该问题,使用“\"”分别添加在每一个参数的前后即可,上文的代码块中也是如此解决的;
经过测试该方法还是可靠的。
相关文章推荐
- 用C#语言实现声音播放
- C#宏观总结(二)
- 装饰模式
- C#学习之多线程开发技术(十一)
- C#--类之隐藏基类的成员
- C#学习之多线程开发技术(十)
- C# 提示框MessageBox
- C#学习之多线程开发技术(九)
- C#学习之多线程开发技术(八)
- c#,将pdf文件转换成图片文件。
- C#Connection must be valid and open?
- c#,使用WMI对象获取系统的DPI。
- C#实现的等额本息法、按月付息到期还本法、一次性还本付息法
- 使用c#,WPF,模仿IPhone的Loading(加载)效果
- c# 调用Microsoft XPS Document Writer打印机,将Pdf文件转换成Xps文件
- 代理模式
- C#comboBox的使用
- C#——浅谈概括
- C#异常处理
- C# MSCHART 曲线指示数据点