当前位置: 首页 > news >正文

C#多线程报错:The destination thread no longer exists.

WinForm,C#多线程报错:

System.ComponentModel.InvalidAsynchronousStateException: 'An error occurred invoking the method.  The destination thread no longer exists.'

研究一番,找到了原因:

有问题的写法:

new Thread(new ThreadStart(scan)).Start();private void scan()
{      //...addForm(name);  //该方法内部会另外启动Thread         Thread.Sleep(3000);    new Thread(new ThreadStart(scan)).Start();
}

原因,一开始用独立线程调用了scan方法,称之为Thread1, 然后scan方法内部又启动了独立线程,称之未Thread1-1,Thread1-2,等等。然后scan方法执行结束之后,Thread1结束,为了要让scan方法循环执行,再次启动另外一个Thread。此时Thread1已经结束,而Thread1-1,1-2是依赖于它的,所以Thread1-1,1-2就报错了:The destination thread no longer exists.

解决办法,修改写法:

new Thread(new ThreadStart(scan)).Start();private void scan()
{   while(true){//...addForm(name);  //该方法内部会另外启动Thread         Thread.Sleep(3000);    scan();}
}

就本例而言,destination thread no longer exists的问题是解决了。

http://www.lryc.cn/news/125398.html

相关文章:

  • 使用 Visual Studio GoogleTest编写 C/C++ 单元测试——入门篇
  • Linux下TA_Lib安装失败的问题处理
  • egg.js企业级web框架
  • 小说网站第二章-关于文章的上传的实现
  • Java面试题01
  • 6.3 社会工程学攻击
  • typeScript 之 Map
  • Apache Doris 入门教程29:文件管理器
  • 【佳佳怪文献分享】MVFusion: 利用语义对齐的多视角 3D 物体检测雷达和相机融合
  • word 应用 打不开 显示一直是正在启动中
  • Flink-----Yarn应用模式作业提交流程
  • Python学习笔记_基础篇(五)_数据类型之字典
  • 【第三阶段】kotlin语言的安全调用操作符
  • 机器学习重要内容:特征工程之特征抽取
  • Logic 2逻辑分析器捉到的CAN帧
  • 手机的发展历史
  • 为什么要分库分表?
  • Unity游戏源码分享-中国象棋Unity5.6版本
  • 打造专属花店展示小程序
  • SpringBoot整合、SpringBoot与异步任务
  • 复习1-2天【80天学习完《深入理解计算机系统》】第六天
  • 62、华为昇腾开发板Atlas 200I DK A2配置mmpose的hrnet模型推理python/c++
  • 【数据结构】双链表
  • android设置竖屏仍然跟随屏幕旋转怎么办
  • java spring cloud 企业电子招标采购系统源码:营造全面规范安全的电子招投标环境,促进招投标市场健康可持续发展 tbms
  • 【Java】2021 RoboCom 机器人开发者大赛-高职组(初赛)题解
  • 汽车制造业上下游协作时 外发数据如何防泄露?
  • H13-922题库 HCIP-GaussDB-OLAP V1.5
  • 美团视觉GPU推理服务部署架构优化实战
  • 什么是前端框架?怎么学习? - 易智编译EaseEditing