关于c#.net的线程问题(1)

       今天编程的时候,出现一个怪问题,当我运行程序结束关闭程序之后,再次运行的时候,提示无法写入.exe文件,exe文件正在运行,打开进程管理器一看,果然该项目的可执行文件还存在。其实该项目也没有什么特别之处,就是新建了一个线程。
        问题就在线程上,打开msdn,忙活了一番,发现线程的一个属性IsBackground值得注意。msdn中这样写到:
   “一个线程或者是后台线程或者是前台线程。后台线程与前台线程类似,区别是后台线程不会防止进程终止。属于某个进程的所有前台线程都终止后,公共语言运行库就会结束该进程。所有剩余的后台线程都会停止且不会完成。”
    该话的意思是:线程实例或者是前台的,或者是后台的,一个进程的所有前台进程终止后,该进程就终止,该进程的终止,导致无条件关闭该进程的所有后台进程。
     如果所有的前台进程没有终止,本质上进程也没有终止。
     c#的线程实例的IsBackground属性默认值是false。
     事实胜于雄辩。咱实践一下。
     在线线程start之前,加上IsBackground=true;
     ok,问题解决。

你可能感兴趣的:(.net)