关于C#中的线程 调查大家如何关闭线程的?比如 你在主线程里 需要调用子线程完成某些操作 例如服务器监听客户端的消息当主线程退出时 你是如何友好地关闭子线程的? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 子线程分为两种不同类型的线程:前台线程和后台线程。(1)应用程序必须运行完所有的前台线程才可以退出;(2)后台线程,应用程序则可以不考虑其是否已经运行完毕而直接退出,所有的后台线程在应用程序退出时都会自动结束。通过设置 Thread.IsBackground 属性,可以将一个线程指定为后台线程或前台线程。(1)通过将 Thread.IsBackground 设置为 true,就可以将线程指定为后台线程。(2)通过将 Thread.IsBackground 设置为 false,就可以将线程指定为前台线程。创建线程:(1)从非托管代码进入托管执行环境的所有线程都被标记为后台线程。(2)通过创建并启动新的 Thread 对象而生成的所有线程都是前台线程。线程关闭:如果要创建希望用来侦听某些活动(如套接字连接)的前台线程,则应将 Thread.IsBackground 设置为 true,以便进程可以终止。 Thread thread1 = new Thread(new ThreadStart(accp1));thread1.IsBackground = true;thread1.Start();这样,主进程结束时,子线程自动关闭 线程是寄宿在进程的地址空间中的,进程结束了,线程自然就结束了。楼主大概意思应该是说,如果UI中启动多个线程(工作线程),当用户直接关闭窗体的时候这些正在工作的线程该如何么?如果是这样你大概可以模仿COM+的引用计数器的方式来工作,你可以定义一个全局计数器来记录启动了多少线程int ThreadCount = 0;每当启动一个线程时ThreadCount++当线程完成工作的时候(一般在线程调用方法的最后一行)的时候回调(this.Invoke(EventHandler))来通知主线程该线程已经工作完成。当用户关闭主线程的时候,你可以检查这个ThreadCount是否为0,如果是0说明左右的工作线程都工作完毕,此时可以安全的关闭主线程,否则主线程处于等待状态,直到ThreadCount为0的时候才关闭。大概思路如此,具体实现代码,请自己实现。 使用反射,通过字符串获取控件、控件属性,以及赋值等 vs2010中终端出结果怎么要等待几秒? 跪求visual studio 2008 简体中文版 下载 C# 如何给 WORD 文件中的 formfield 付值? 2003下写的程序,无法在win2000上运行 能不能在已再VS2005关闭Designer 后,在打开它,接着设计 C# 关于委托 要搞死我了 关于TTS语音库的问题!!! Navicat for SQL 的查询分析器可以调用,程序MySqlCommand调用失败 这是一个坑吗??? 带有中文的Xml写入DataSet出错 救救我吧 看看那里错了 .net到期后
(1)应用程序必须运行完所有的前台线程才可以退出;
(2)后台线程,应用程序则可以不考虑其是否已经运行完毕而直接退出,所有的后台线程在应用程序退出时都会自动结束。通过设置 Thread.IsBackground 属性,可以将一个线程指定为后台线程或前台线程。
(1)通过将 Thread.IsBackground 设置为 true,就可以将线程指定为后台线程。
(2)通过将 Thread.IsBackground 设置为 false,就可以将线程指定为前台线程。创建线程:
(1)从非托管代码进入托管执行环境的所有线程都被标记为后台线程。
(2)通过创建并启动新的 Thread 对象而生成的所有线程都是前台线程。线程关闭:
如果要创建希望用来侦听某些活动(如套接字连接)的前台线程,则应将 Thread.IsBackground 设置为 true,以便进程可以终止。
thread1.IsBackground = true;
thread1.Start();这样,主进程结束时,子线程自动关闭
int ThreadCount = 0;
每当启动一个线程时ThreadCount++
当线程完成工作的时候(一般在线程调用方法的最后一行)的时候回调(this.Invoke(EventHandler))来通知主线程该线程已经工作完成。当用户关闭主线程的时候,你可以检查这个ThreadCount是否为0,如果是0说明左右的工作线程都工作完毕,此时可以安全的关闭主线程,否则主线程处于等待状态,直到ThreadCount为0的时候才关闭。大概思路如此,具体实现代码,请自己实现。