摘要:
C#语言有很多值得学习的地方,这里我们主要介绍C# ThreadPool类,包括介绍ThreadPool.QueueUserWorkItem()方法等方面。 在多线程的程序中,经常会出现两种情况: 一种情况: 应用程序中,线程把大部分的时间花费在等待状态,等待某个事件发生,然后才能给予响应,这一般使用ThreadPool(线程池)来解决; 另一种情况:线程平时都处于休眠状态,只是周期性地被唤醒,这一般使用Timer(定时器)来解决; C# ThreadPool类提供一个由系统维护的线程池(可以看作一个线程的容器),该容器需要 Windows 2000 以上系统支持,因为其中某些方法调用了只有高 阅读全文
摘要:
Interlocked.Increment 方法:让++成为原子操作;Interlocked.Decrement 方法让--成为原子操作。什么叫原子操作呢。就是不会被别人打断,因为C#中的一个语句,编译成机器代码后会变成多个语句。在多线程环境中,线程切换有可能会发生在这多个语句中间。使用Interlocked.Increment,Interlocked.Decrement 可以避免被打断,保证线程安全。使用Interlocked.Increment 方法和Interlocked.Decrement 方法MSND例子:using System;using System.Threading;cla 阅读全文
摘要:
指在一线程里面调用另一线程join方法时,表示将本线程阻塞直至另一线程终止时再执行例子如下:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;namespace ConsoleApplication7{ class Program { static void Main(string[] args) { Thread x = new Thread(new ThreadStart(f1)); x.Start(); Console.Write 阅读全文