C#在一个进程中调用另一个进程后台进程IsBackground

来源:互联网 发布:linux vs qt 编辑:程序博客网 时间:2024/05/17 04:54
最近在做一个项目时,需要在一个进程中调用另一个进程,这里记录一下,
在msdn 上有一个简介,上面的介绍:https://msdn.microsoft.com/en-us/library/system.diagnostics.process.start(v=vs.110).aspx
是通过Process.Start方法,这个方法是一个重构的方法。
有时调用其他的进程可能调用不起来,这时可能还需要一句,来获取另一个进程的工作路径
Process proc = new Process();
string MainAppPath = "test.exe";//the path of the exe file
proc.StartInfo.FileName = MainAppPath;
proc.StartInfo.WorkingDirectory = Path.GetDirectoryName(MainAppPath);;
proc.Start();
参考链接:https://segmentfault.com/a/1190000003740834
虽然这样调用了另一个线程,但是如果想要把该线程给杀死了,但是由于我调用的那个线程里面的主线程又创建了几个线程,但是我虽然把主线程
给杀死了,但是那几个子线程并没有停止运行,后来在网上又继续百度了一下,是因为新开的线程的IsBackground属性没有设置为True,新建的线程
默认是FALSE,当主线程退出的时候,IsBackground=False的线程还会继续执行下去,直到线程执行结束,只有IsBackground=True的线程才会随着
主线程的退出而退出,当初始化一个线程的时候,把IsBackground设为True,指示该线程为后台线程,只有这样后台线程才会随着主线程的退出而退出
原理:只有所有前台线程都终止以后,CLR就会对每一个活动在后台的线程调用Abort()来彻底终止应用程序。
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 微信解除实名认证后退款怎么办 苹果为什么qq收消息有延迟怎么办 qq忘记密码手机号也换了怎么办 扣扣空间圈人时照片服务错误怎么办 删了qq好友怎么找回来怎么办 苹果5s语音控制打开了怎么办 lv迷你水桶包肩带长了怎么办 在香港买个lv包包过海关怎么办 国际快递手表被海关查应该怎么办 把档案放到人才市场后报到证怎么办 皮表带带久了有异味怎么办 英语中用词不当和拼写错误怎么办 爬楼梯的购物车车轮坏了怎么办? 帮别人买东西不给我钱怎么办 老师念错名字有同学指出来你怎么办 老公婚前买的房子婆婆想霸占怎么办 我想查我的基金收益情况怎么办 儿童票买好了但大人退票了怎么办 没有享受到国家政策的农民怎么办? 股票涨了没抛然后一直跌怎么办 苹果手机放久了开不了机怎么办 部门要辞退你你不想走该怎么办 口头说辞职现在又不想走了怎么办 网上买的理财不给退本金怎么办 买东西遇到态度不好的人你会怎么办 app在下载东西时被停用了怎么办 买东西填错地址 但已签收怎么办 网购手机受骗后电话打不通怎么办 淘宝买的东西发错了怎么办 淘宝上买的东西发错了怎么办 淘宝上买的东西发多了怎么办 淘宝上买的东西出现问题怎么办 淘宝买东西未收到货显示签收怎么办 网上一张车票两人同时付款了怎么办 微信付款时显示银行卡被锁定怎么办 微信忘记支付密码怎么办没有银行卡 支付宝赏金扫码支付不行怎么办 网购收货时发现货物已破损怎么办 货物丢失了不承认调查出来了怎么办 小米商城已签收未收到了怎么办 网购的一只荷兰猪现在怎么办