工控上位机C#中的进程、线程与多线程( 二 )
一个C#程序称为多线程的可以通过2种方式:明确地创建和运行多线程 , 或者使用.NET framework的暗中使用了多线程的特性——比如BackgroundWorker类, 线程池 , threading timer , 远程服务器 , 或Web Services或ASP.NET程序 。 在后面的情况 , 人们别无选择 , 必须使用多线程;一个单线程的ASP.NET web server不是太酷 , 即使有这样的事情;幸运的是 , 应用服务器中多线程是相当普遍的;唯一值得关心的是提供适当锁机制的静态变量问题 。
(十一)、何时不要使用多线程
多线程也同样会带来缺点 , 最大的问题是它使程序变得过于复杂 , 拥有多线程本身并不复杂 , 复杂是的线程的交互作用 , 这带来了无论是否交互是否是有意的 , 都会带来较长的开发周期 , 以及带来间歇性和非重复性的bugs 。 因此 , 要么多线程的交互设计简单一些 , 要么就根本不使用多线程 。 除非你有强烈的重写和调试欲望 。 当用户频繁地分配和切换线程时 , 多线程会带来增加资源和CPU的开销 。 在某些情况下 , 太多的I/O操作是非常棘手的 , 当只有一个或两个工作线程要比有众多的线程在相同时间执行任务快的多 。
本文插图
- 一片唱衰的魅族17系列,还有希望吗?
- 娱乐中的趣闻还在为生存所困扰吗?试试这些道具!,我的世界:星际探险新模式
- 娱乐中的趣闻“小黄鸭”爱吃草,谁站在了顶端,我的世界:星际探险中的食物链
- 孤单中的寂魅族17和oppoACE2,哪个更好?
- 国际鲜闻谁是长三角区域上市城商行中的王者?
- 手机大魔王我于杀戮之中盛放,亦如黎明中的花朵——IQOO Neo3
- 科技数码迷论设计一加8第一,网友心中的国产高端排名:论系统小米10第一
- 科技数码迷网友心中的国产高端排名:论系统小米10第一,论设计一加8第一
- 绿色中国防务美俄看后直言很羡慕,坦克中的歼20?全球首款隐身坦克悄然亮相
- 科技智能制造TB细数机器人十大工控产品,没有这些机器人自动化就不能实现