前台线程VS后台线程

  .NET Framework 中的所有线程都被指定为前台线程或后台线程。这两种线程唯一的区别是- 后台线程不会阻止进程终止。在属于一个进程的所有前台线程终止之后,公共语言运行库 (CLR) 就会结束进程,从而终止仍在运行的任何后台线程。在默认情况下,通过创建并启动新的 Thread 对象生成的所有线程都是前台线程,而从非托管代码进入托管执行环境中的所有线程都标记为后台线程。然而,通过修改Thread.IsBackground 属性,可以指定一个线程是前台线程还是后台线程。通过将Thread.IsBackground 设置为 true,可以将一个线程指定为后台线程;通过将Thread.IsBackground 设置为 false,可以将一个线程指定为前台线程。注有关 Thread 对象的详细信息,请参阅本章后面的“使用 Thread 类”部分。在大多数应用程序中,您会选择将不同的线程设置成前台线程或后台线程。通常,应该将被动侦听活动的线程设置为后台线程,而将负责发送数据的线程设置为前台线程,这样,在所有的数据发送完毕之前该线程不会被终止。只有在确认线程被系统随意终止没有不利影响时,才应该使用后台线程。如果线程正在执行必须完成的敏感操作或事务操作,或者需要控制关闭线程的方式以便释放重要资源,则使用前台线程。

posted @ 2010-06-01 16:42  Ada.color  阅读(211)  评论(0)    收藏  举报