设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 软件教学 >> 编程开发 >> C#多线程编程实例实战
精品推荐
编程开发点击TOP10
·Java进阶:JNI使用技巧点滴
·专家手把手教你安装MYSQL数据库
·e书工场--制造电子书全攻略
·删除流氓的SQL Server2005
·我的第一个VB程序--“跟我来学VB神童教程”
·Authorware自制拼图游戏
·使用Quick CHM软件轻松编译CHM格式的文件
·DIY自己常用的软件eXeScope
·用Authorware制作自检测在线答题系统
·精细讲述SQL Server数据库备份多种方法
软件教学点击TOP10
·自己动手制作USB启动盘快速简单
·学用金山游侠修改游戏
·几百个软件注册机
·常用软件序列号
·用eBook Edit 自己动手制作exe型电子书
·应用软件注册码大全(最新整理) 1
·Windows Media Player同步歌词秀全攻略
·五分钟玩转电脑迷共享空间
·冰点还原(DeepFreeze)使用帮助
·液晶显示器测试小工具--Monitors Matter CheckScreen
精选专题

C#多线程编程实例实战

作者: 来源:网络文章 时间:2005-12-13 14:49:28

C#多线程编程实例实战(2)
object obj = Thread.GetData( slot );

LockFlags flag = LockFlags.None;

if( obj != null )

flag = (LockFlags)obj ;

if( flag == LockFlags.None )

{

Thread.SetData( slot, LockFlags.Reader );

}

else

{

Thread.SetData( slot, (LockFlags)((int)flag (int)LockFlags.Reader ) );

}


if( bExistingWriter )

{ //等待指定的时间

this.m_aeReaders.WaitOne( millisecondsTimeout, true );

}

}

它首先进入临界区(用以在多线程环境下保证活动线程数目的操作的正确性)判断当前活动线程的数目,如果有写线程(m_nActive<0)存在,则等待指定的时间并且等待的阅读线程数目加1。如果当前活动线程是读线程(m_nActive>=0),则可以让读线程继续运行。

申请写入锁的函数原型为:public void AcquireWriterLock( int millisecondsTimeout ),其中的参数为等待调度的时间。函数定义如下:

public void AcquireWriterLock( int millisecondsTimeout )

{

// m_mutext很快可以得到,以便进入临界区

m_mutex.WaitOne( );

// 是否有活动线程存在

bool bNoActive = m_nActive == 0;

if( !bNoActive )

{

m_nWaitingWriters++;

}

else

{

m_nActive--;

}

m_mutex.ReleaseMutex();

//存储线程锁标志

System.LocalDataStoreSlot slot = Thread.GetNamedDataSlot( "myReaderWriterLockDataSlot" );

object obj = Thread.GetData( slot );

LockFlags flag = LockFlags.None;

if( obj != null )

flag = (LockFlags)Thread.GetData( slot );

if( flag == LockFlags.None )

{

Thread.SetData( slot, LockFlags.Writer );

}

else

{

Thread.SetData( slot, (LockFlags)((int)flag (int)LockFlags.Writer ) );

共5页 9 7 [1] [2] [3] [4] [58 :>

C#多线程编程实例实战 相关文章:
C#多线程编程实例实战 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com