首页 > 编程语言 >C# 中如何判断线程是否结束_manok_新浪博客

C# 中如何判断线程是否结束_manok_新浪博客

时间:2022-12-23 12:03:38浏览次数:42  
标签:判断 newThread C# 是否 IfTimesEnd 线程 manok


    为了测试获取网页源码,使用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,线程,manok
From: https://blog.51cto.com/u_12655962/5965309

相关文章

  • C#  不支持调用CORBA?_manok_新浪博客
       公司中的主要产品采用了COM+技术和CORBA技术,在Windows2003server上使用COM+做的组件,C#支持调用COM+,调用起来比较方便,这毕竟是微软自己的技术吧。而在Linux平台呢,......
  • 获得移动和电信等的网关_manok_新浪博客
        近来正在测试一个项目,因为产品不断的升级,需要不断变化的网关,我们主要使用的是移动的网关,但是因为访问我们的服务器上WAP网页、彩信等有的用户使用的Opera等可......
  • C# 中如何判断线程是否结束
       为了测试获取网页源码,使用C#编写程序,为了最大限度的增加获取的次数,于是采用了多线程的方式,C#中很容易实现多线程,其实现方式与Java的实现方式基本一样,但是在功能上......
  • 今天给最近20个人要gmail的朋友发了要求邮件_manok_新浪博客
        今天好像松了点,坐在这里,给大家发要求函,因为每个邮箱可发送邀请函的数量是有限的,希望得到邀请函的朋友,给我的主页中要gmail的朋友发一个邀请函,大家帮助大家。......
  • 关于申请Gmail邮箱的声明_manok_新浪博客
      我以后给很多人发了申请链接的种子,告诉他们申请后,把邀请可以发给我,这样也可以给很多人发要求,但是没有一个人回复我。所以我这里基本上已经没有种子了。  ......
  • VMWare 虚拟机测试工程师必备之工具_manok_新浪博客
       前些天测试COM+和Corba组件,目的是让我们的这个组件运行在所有的服务器平台上,包括Windows2000server系列和Windows2003系列,还有Linux的各种服务器版本,这么多的操......
  • 自动邮件发送系统_manok_新浪博客
        这几天,财务部门有这样一个需求,就是200多个员工的工资,放在一个excel文件中,财务人员要复制每个员工的工资到一个单独文件中,再通过附件的形式发送给员工。我想就......
  • 教你用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交......