工控上位机C#中的进程、线程与多线程( 二 )

一个C#程序称为多线程的可以通过2种方式:明确地创建和运行多线程 , 或者使用.NET framework的暗中使用了多线程的特性——比如BackgroundWorker类, 线程池 , threading timer , 远程服务器 , 或Web Services或ASP.NET程序 。 在后面的情况 , 人们别无选择 , 必须使用多线程;一个单线程的ASP.NET web server不是太酷 , 即使有这样的事情;幸运的是 , 应用服务器中多线程是相当普遍的;唯一值得关心的是提供适当锁机制的静态变量问题 。
(十一)、何时不要使用多线程
多线程也同样会带来缺点 , 最大的问题是它使程序变得过于复杂 , 拥有多线程本身并不复杂 , 复杂是的线程的交互作用 , 这带来了无论是否交互是否是有意的 , 都会带来较长的开发周期 , 以及带来间歇性和非重复性的bugs 。 因此 , 要么多线程的交互设计简单一些 , 要么就根本不使用多线程 。 除非你有强烈的重写和调试欲望 。 当用户频繁地分配和切换线程时 , 多线程会带来增加资源和CPU的开销 。 在某些情况下 , 太多的I/O操作是非常棘手的 , 当只有一个或两个工作线程要比有众多的线程在相同时间执行任务快的多 。
工控上位机C#中的进程、线程与多线程
本文插图