摘要:
考虑这样的一个场景:一个停车场的只含一定数量的停车位,只有当停车场中还有空位时,停车场的入口才会打开。C#提供了Semaphore类来处理这种场景。Semaphore类可以在构造时指定资源数量,使用WaitOne方法等待一个资源,使用Release方法释放一个资源。示例代码:using System;using System.Threading;namespace ProcessTest{ class Program { static Semaphore semaphore; static void Main(string[] args) { //创建一个限制资源类 //资源数为5,开放资源. 阅读全文
posted @ 2011-04-03 23:39
辛勤的代码工
阅读(1847)
评论(0)
推荐(0)
摘要:
System.Threading.Interlocked类为多个线程共享的变量提供原子操作。为整型类提供原子类操作 经验显示,那些需要在多线程情况下被保护的资源通常是整型值,且这些整型值在多线程下最常见的操作就是递增、递减或相加操作。Interlocked类提供了一个专门的机制用于完成这些特定的操作。这个类提供了Increment、Decrement、Add静态方法用于对int或long型变量的递增、递减或相加操作。 示例代码:using System;using System.Threading;namespace ProcessTest{ class Program { static i. 阅读全文
posted @ 2011-04-03 22:49
辛勤的代码工
阅读(4087)
评论(2)
推荐(1)
摘要:
volatile关键字 volatile关键字仅应用于类或结构字段,用于通知编译器,将有多个线程访问该字段,因此它不应当对此成员的状态做任何优化,这样可以确保该字段在任何时间呈现的都是最新的值。 不是所有的类型都可以被定义为volatile字段,只有以下类型才可被定义为volatile:引用类型。指针类型(在不安全的上下文中)。整型,如 sbyte、byte、short、ushort、int、uint、char、float 和 bool。具有整数基类型的枚举类型。已知为引用类型的泛型类型参数。IntPtr 和 UIntPtr。 注意观察一下,就能发现只有值或引用的位数不超过本机整型值的位数(在 阅读全文
posted @ 2011-04-03 20:31
辛勤的代码工
阅读(1592)
评论(0)
推荐(1)
摘要:
System.Diagnostics.Process类的实例可以引用一个进程,被引用的进程包含以下几种:该实例的当前进程。本机上除了当前进程的其他进程。远程机器上的某个进程。创建或销毁子进程 示例代码:using System;using System.Collections.Generic;using System.Text;using System.Diagnostics;using System.Threading;namespace ProcessTest{ class Program { static void Main(string[] args) { //创建一个记事本子进程. 阅读全文
posted @ 2011-04-03 18:45
辛勤的代码工
阅读(617)
评论(0)
推荐(0)
浙公网安备 33010602011771号