线程停止

weixin_39516696 2019-12-01 04:20:30
线程内有一个while循环,发现运行几个小时后线程自动停止了,也捕捉不到异常,什么原因呢
...全文
93 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_39516696 2019-12-02
  • 打赏
  • 举报
回复
引用 4 楼 Summer_djz的回复:
把你代码发出来
try { while (true) { File.AppendAllText(@"C:\log.txt", "开始运行" + DateTime.Now + "\t\r\n"); Thread.Sleep(30); UInt16 values = 0; robot.ReadTrue(Convert.ToUInt16(201), ref values, 0); //if (robot.ReadWR(Convert.ToUInt16(201), ref values, Convert.ToByte(0)) == false) //{ // File.AppendAllText(@"C:\log.txt", "机械手任务未完成" + DateTime.Now + "\t\r\n"); // continue; //} if (robot.ReadState()) { File.AppendAllText(@"C:\log.txt", "监控到空闲机台" + DateTime.Now + "\t\r\n"); if (this.InserTask() == false) { File.AppendAllText(@"C:\log.txt", "开始切换机台" + DateTime.Now + "\t\r\n"); this.fun(); } } if (rack.ReturnTablePos(Global.PartToDoing) == false) { bool cnc_1 = cnc.ReturnCnc("CNC-Ele-27"); bool cnc_2 = cnc.ReturnCnc("CNC-Ele-28"); bool cnc_3 = cnc.ReturnCnc("CNC-Ele-29"); if (cnc_1 == false && cnc_2 == false && cnc_3 == false) { btnStart.Text = "重新启动"; break; } } } } catch (Exception e) { File.AppendAllText(@"C:\log.txt", e.ToString() + DateTime.Now + "\t\r\n"); MessageBox.Show(e.ToString()); } finally { File.AppendAllText(@"C:\log.txt", "未发现异常" + DateTime.Now + "\t\r\n"); }
牧歌ing 2019-12-02
  • 打赏
  • 举报
回复
把你代码发出来
正怒月神 2019-12-02
  • 打赏
  • 举报
回复
你是怎么捕获异常的?
exception92 2019-12-02
  • 打赏
  • 举报
回复
跳出while循环了。想要捕获异常得将异常抛出到执行线程,由执行线程捕获。“运行几小时自动停止”说得不准确,不清楚运行过程中都做了什么操作,达到某个条件就执行完毕了。
Eason0807 2019-12-01
  • 打赏
  • 举报
回复
1、确实是无异常的停止,那就是循环条件不满足 2、有异常,你的异常捕获或者处理有问题;

110,500

社区成员

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

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

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