DotNet对同步的支持
来源:互联网 发布:淘宝运营表格 编辑:程序博客网 时间:2024/05/22 03:05
.NET Framework在System.Threading,System.EnterpriseServices和System.Runtime.Compiler命名空间中提供了一些类,程序员可以使用这些类开发线程安全的代码.下面是这些类的简单说明:
Monitor:
Monitor对象用于锁定重要的代码段,这样,在任一时刻就只能有一个线程访问重要的代码段.Monitor对象可帮助确保重要代码段的原子性.
Mutex:
Mutex对象类似于Monitor对象,但Mutex对象只允许一个线程式访问在进程中的资源.Mutex的重载构造函数可以用于指定Mutex的所属关系和名称.
Interlocked
Interlocked类包含如下的方法,CompareExchange().Decrement(),Exchange()和Increment(),这些方法为同步访问由多个线程共享的变量提供了一种简单机制.
AutoResetEvent,ManualResetEvent
AutoResetEvent,ManualResetEvent用于通知一个或多个等待线程:事件已经触发.这些类都是不能继承的.
SynchronizationAttribute
SynchronizaitionAttribute确保同一时刻只有一个线程可以访问对象,这种同步进程是自动的.不需要显式锁定任何代码段.
MethodImplAttribute
这个属性告诉编译器方法该如何实现.
一 MethodImplAttribute 类
System.Runtime.CompilerService命名空间包含的一些属性将影响CLR在运行期间的行为.MethodImplAttribute 就是这样一个属性,它告诉CLR方法是如何实现的. MethodImplAttribute的一个构造函数把 MethodImplOptions 枚举作为其参数,MethodImplOptions枚举有一个字段 Synchronized, 它指定在任一时刻只允许一个线程访问这个方法,这类似使用 lock 关键字.使用这个属性的方法如下:
using System.Runtime.CompilerServier;
using ......
.....
[MethodImpl(MethodImplOptions.Synchronized)]
public void MethodName(params)
{
}
.....
这样,当多个线程同时调用这个方法时,会保证只有一个线程运行,其它线程处于等待状态.
- DotNet对同步的支持
- 【WMI】WMI For C# dotNet对WMI的支持
- 【WMI-6】WMI For C# dotNet对WMI的支持
- 对DotNet分布式应用搭建的考虑
- 对DotNet分布式应用搭建的考虑
- DotNet同步策略
- [推荐]dotNET中进程间同步/通信的经典框架
- [推荐]dotNET中进程间同步/通信的经典框架
- [推荐]dotNET中进程间同步/通信的经典框架
- CSharp Tips:让DotNet实现的COM对象支持IObjectSafet
- AOP in dotnet :AspectCore的参数拦截支持
- AOP in dotnet :AspectCore的参数拦截支持
- Java对多线程的支持(一) - Thread类、Runnable接口、Daemon线程、线程同步
- Java对多线程的支持(一) - Thread类、Runnable接口、Daemon线程、线程同步
- bintray-release添加对Maven Central同步的支持(五)
- Ogre的多线程同步支持
- Ogre的多线程同步支持
- 程序同步的硬件支持
- 又是劳累的一天
- C++指向类成员的指针的使用(详细介绍)
- VC混合视图的分割
- 迅雷BT功能与IIS冲突导致0x8ffe2740错误
- 调试flex程序
- DotNet对同步的支持
- C语言部门考试,最后两道题总结
- 推荐一个代码生成工具Commonclipse
- openoffice下添加windows字体
- as3中的DisplayObject
- 五种常见的PHP设计模式
- c#中的委托和事件
- MIM 十大实用插件深入剖析http://news.newhua.com/html/Soft_test/2006-5/16/0651616311740640_85.shtml
- Python的动态类型绑定与赋值机制