首页 > 编程语言 >C# 中如何判断线程是否结束

C# 中如何判断线程是否结束

时间:2022-12-23 12:02:44浏览次数:43  
标签:判断 newThread C# 是否 IfTimesEnd 线程


    为了测试获取网页源码,使用C#编写程序,为了最大限度的增加获取的次数,于是采用了多线程的方式,C#中很容易实现多线程,其实现方式与Java的实现方式基本一样,但是在功能上提供的方法更多一些。


    在编程的过程中,在主线程中启动了多个线程后,往往想等线程结束后再打印一些统计信息出来,但是可能先执行主线程中的打印语句,后面线程才能结束,这往往不是我们想要的。而如何判断线程执行是否结束呢? 可喜的是微软提供了我们这样一个方法,IsAlive()其判断线程是否还在运行状态,所以我们可以在循环中一直判断这个标识,等该线程结束后,退出线程。而我们的程序在执行过程中,可能又要判断是否按下了停止按钮或停止键,按下后,会立刻终止线程,退出程序。所以在while循环中还要判断是否有键盘或鼠标消息,所以在循环判断中,还要处理这些消息,防止while(1)循环一直执行,不再响应消息。所以我们使用了几个BOOL变量,作为标志,通过这些标志,可以判断线程是否结束,是否按下了停止按钮。下面是C#中的相关代码,可以参考。



 



private bool StartThreads()
{

bool IfTimesEnd = false;

IfRunOver = false;


Thread newThread = new Thread(new ThreadStart(ThreadProc));
newThread.Start(); while (!IfRunOver)
{

IfTimesEnd = newThread.IsAlive;
System.Windows.Forms.Application.DoEvents();
if (!IfTimesEnd || IfRunOver)
{
newThread.Interrupt();
newThread.Abort();
IfTimesEnd = false;
break;
}
}
return !IfTimesEnd;

标签:判断,newThread,C#,是否,IfTimesEnd,线程
From: https://blog.51cto.com/u_12655962/5965314

相关文章

  • 教你用JavaScript实现随机点名器
    案例介绍欢迎来到我的小院,我是霍大侠,恭喜你今天又要进步一点点了!我们来用JavaScript相关知识,做一个随机点名的案例。你可以通过点击开始按钮控制上方名字的闪动,点击停止按......
  • LeetCode刷题第七周
    455、分发饼干classSolution{publicintcount;publicintfindContentChildren(int[]g,int[]s){Arrays.sort(g);Arrays.sort(s);......
  • 【VMware NSX-T】在vCenter内直接将Manager设备删除后,ESXi上还遗留N-VDS交换机及网卡
    由于之前在实验平台安装了NSX-T的测试环境,但是由于太忙了没怎么测试,后来实验环境出了点小问题,索性就将上面所有虚拟机给清空了。但是没想到上面遗留了NSX-T上创建的N-VDS交......
  • windows下CEF3的关闭流程《转》
    原文地址:https://github.com/fanfeilong/cefutil/blob/master/doc/CEF_Close.md=============================================================================我来说......
  • Consul集群部署
    前言简介Consul是HashiCorp公司推出的开源软件,通过GO语言编写,提供服务注册和发现、配置、多数据中心的高可用方案等能力,分布式一致方面采用raft算法实现,并且很容易......
  • mfc封装cef浏览器 关闭整个窗口程序得时候又重启mfc 应用的程序
    最近使用mfc做了一个cef得浏览器多标签得。当使用这个封装得浏览器一段时间之后(超过1分钟2分钟)当关闭封装得浏览器整个窗体x得时候,整个窗体又重新弹了出来。大概现象......
  • CEF3开发者系列之Cookies管理和共享<转>
    原帖地址:https://www.cnblogs.com/guolixiucai/p/6994559.html涉及网页登录相关的技术,Cookies肯定是忽略不了的。由于项目的需要,要做一个双核的产品。双核间切换会涉及到......
  • TypeScript 项目引用简化
    为了避免出现长路径引用:  建议修改成如下:  项目的目录:  这时候,引用就很方便了: ......
  • Cortex-A55核心板的温升实测!
     HD-G2UL系列核心板是万象奥科全新发布的极具性价比产品,搭载64位[email protected]处理器,搭配1G内存/8G存储售价仅为148元。本文将针对该系列核心板进行温升实测。 1.......
  • 【实例分割算法】Mask Rcnn
    一、MaskRcnn1.理论:在FasterRcnn基础上添加一个Mask预测分支,每个类一张特征图2.网络框架......