单击主窗体上按钮,调用cmd并等待结束,期间不阻滞主窗体,请问如何实现

八戒入赘云栈洞 2016-12-07 10:16:46
问题简述:

我创建了一个WinForm,现在在窗体上加了一个按钮,单击按钮会调用cmd.exe并执行一些任务,直到任务结束,期间主窗体仍然可输入(不阻塞)!

请问该如何实现。
...全文
155 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
青阳十五 2016-12-09
  • 打赏
  • 举报
回复
using System.Threading; Thread cmdThread=new Thread(调用方法); public void 方法() { .... }
  • 打赏
  • 举报
回复
引用 4 楼 jiuzhoulh的回复:
方法很多:比如设置标志变量啊,定时主线程可以启动time等方案定时检查标志变量; 或是cmd执行完成之后的后续处理通过委托等都可以实现
看懂了,我试试,多谢!
crystal_lz 2016-12-08
  • 打赏
  • 举报
回复
线程里面 Process p = new ... .. p.WaitForExit(); //...这里通知窗体
  • 打赏
  • 举报
回复
引用 3 楼 u010799788 的回复:
[quote=引用 1 楼 jiuzhoulh的回复:]启动线程去做就可以了啊
用线程能知道cmd何时关闭吗?(cmd执行完任务自己会关闭)[/quote] (cmd执行完返回一个值给主窗口不就知道了
  • 打赏
  • 举报
回复
引用 4 楼 jiuzhoulh的回复:
方法很多:比如设置标志变量啊,定时主线程可以启动time等方案定时检查标志变量; 或是cmd执行完成之后的后续处理通过委托等都可以实现
以设置标志变量为例,主窗体在等待期间怎么判断该变量的值?一直while循环吗?如果一直循环,那岂不是主窗体也无法获取其他操作?还请赐教!
jiuzhoulh 2016-12-07
  • 打赏
  • 举报
回复
方法很多:比如设置标志变量啊,定时主线程可以启动time等方案定时检查标志变量; 或是cmd执行完成之后的后续处理通过委托等都可以实现
  • 打赏
  • 举报
回复
引用 1 楼 jiuzhoulh的回复:
启动线程去做就可以了啊
用线程能知道cmd何时关闭吗?(cmd执行完任务自己会关闭)
  • 打赏
  • 举报
回复
补充说明,当调用了cmd后,无法取消,只能等待其运行完成!
jiuzhoulh 2016-12-07
  • 打赏
  • 举报
回复
启动线程去做就可以了啊

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧