2011年7月10日
摘要: 定期执行受计算限制的异步操作 System.Threading命名空间中定义了一个Timer类,可使用这个类让CLR定期地调用方法。构建Timer类的实例时,实际是在告诉CLR我们希望一个方法在指定的时间内被再次调用。Timer类提供了几个非常相似的构造器:public sealed class Timer : MarshalByRefObject, IDisposable{ public Timer(TimerCallback callback, Object state, int dueTime, int period); public Timer(TimerCallback callba 阅读全文
posted @ 2011-07-10 23:42 辛勤的代码工 阅读(947) 评论(0) 推荐(0) 编辑
摘要: 高效线程使用圣典 严格来讲,线程的系统开销很大。系统必须为线程分配并初始化一个线程内核对象,还必须为每个线程保留1MB的地址空间(按需提交)用于线程的用户模式堆栈,分配12KB左右的地址空间用于线程的内核模式堆栈。然后,紧接着线程创建后,Windows调用进程中每个DLL都有的一个函数来通知进程中所有的DLL操作系统创建了一个新的线程。同样,销毁一个线程的开销也不小:进程中的每个DLL都要接收一个关于线程即将“死亡”的通知,而且内核对象及堆栈还需释放。 如果一台计算机中只有一个CPU,那么在某一时刻只有一个线程可以运行。Windows必须跟踪记录线程对象,而且是不停地跟踪记录每个线程对象。Wi 阅读全文
posted @ 2011-07-10 22:18 辛勤的代码工 阅读(863) 评论(0) 推荐(0) 编辑