怎么让主线程中止或者是退出方法体

沫林 2018-08-16 06:32:06
有两条线程,子线程读取数据,主线程执行一个方法休,当子线程读到错误数据时就会通知主线程,得到通知后,主线程就会立刻中止或者是退出方法体。问题就是:怎么让主线程中止或者是退出方法体、

//定义委托
public delegate void Entrust(string str);
private void border_MouseDown(object sender, MouseButtonEventArgs e)
{
Entrust callback = new Entrust(CallBack); //把方法赋值给委托
StoryboardCreat();//主线程执行的方法体
invokeThread = new Thread(StartMethod);
invokeThread.IsBackground = true;
invokeThread.Start(callback);
}
//子线程读到错误数据并通知到主线程
private void StartMethod(object obj)
{
Thread.Sleep(1000);
Dispatcher.BeginInvoke(new Action(delegate
{
label3.Content = "自动判读失败,失败原因:" + g.Cause + "。";
invokeThread.Abort();
Entrust callback = obj as Entrust;//强转为委托
callback("我读到错误数据了,通知主线程");
}));
}
//被通知的主线程
private void CallBack(string str)
{
MessageBox.Show(str);
}


就是这个CallBack方法体里应该怎么写啊?请大神指导,谢谢!!!
...全文
221 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
退出方法,就是执行
return;
语句。
沫林 2018-08-17
  • 打赏
  • 举报
回复
好的 ,谢谢, 问题已经解决了。
沫林 2018-08-17
  • 打赏
  • 举报
回复
感谢各位大佬的意见,是我想复杂了,我的那个问题没这么麻烦的,但是我认真参考的一楼的意见去看了一下task,确实可以解决一些问题,下面贴出一下度娘给的代码,希望对有需要的人来说有用
晨易夕 2018-08-17
  • 打赏
  • 举报
回复
你要退出的这个主线程,就是退出当前进程吧。
Environment.Exit(0);
方法可以。
lindexi_gd 2018-08-17
  • 打赏
  • 举报
回复
Enviomenet.Exit 退出
sj490790083 2018-08-16
  • 打赏
  • 举报
回复
Task+CancellationTokenSource 搜一下

110,549

社区成员

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

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

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