通行证: 用户 密码
http://www.pconline.cn/
汽车网 | 游戏网 | 时尚女性
分站:北京 上海 广州 深圳 香港
广西 重庆 山东 江苏 辽宁 福建
首 页 | 今日报价 | 产业资讯 | 数码世界 | 硬件资讯 | 软件资讯 | 下 载 | 游 戏 |
论 坛 | 产 品 库 | 渠道商情 | 招聘培训 | 二    手 | 评 测 室 | 导 购 | 社 区 |
摄影
部落
手 机
数码相机
随身听
 DIY配件
笔记本
 台式机
摄像机
精品廊
-
您现在的位置:软件资讯 > 开发特区 > .net技术 > C#
  c#多线程教学(5):Case 学习多线程 出处:csdn
[ 2005-07-13 10:22:20 ] 作者:c-sharpcorner 责任编辑:moningfeng

  在这里,我增加了一个ManualResetEvent对象和ManualResetEvent的数组。

public ManualResetEvent m_mreB;

public ManualResetEvent[] m_mre_array;


  添加初始化代码:

m_mreB = new ManualResetEvent(false);

m_mre_array = new ManualResetEvent[2];

m_mre_array[0]=m_mre;

m_mre_array[1]=m_mreB;


  启动四个线程:

Thread t0 = new Thread(new ThreadStart(SafeWriteThread));

Thread t0B = new Thread(new ThreadStart(SafeWriteThreadB));

Thread t1 = new Thread(new ThreadStart(SafeReadThread10B));

Thread t2 = new Thread(new ThreadStart(SafeReadThread20B));

t0.IsBackground=true;

t0B.IsBackground=true;

t1.IsBackground=true;

t2.IsBackground=true;

t0.Start();

t0B.Start();

t1.Start();

t2.Start();


  在这里有两个StartThreads和两个WriteThreads,让我们看看他们的执行:

public void SafeWriteThread()

{
m_mre.Reset();

WriteThread();

m_mre.Set();
}

public void SafeWriteThreadB()

{
m_mreB.Reset();

m_mre.WaitOne();

Thread.Sleep(1000);

m_x+=3;

m_mreB.Set();
}


  我对第二个WriteThread使用了另外一个事件对象,为了模拟等待第一个线程完成工作。

public void SafeReadThread10B()

{
WaitHandle.WaitAll(m_mre_array);

ReadThread10();
}

public void SafeReadThread20B()

{
WaitHandle.WaitAll(m_mre_array);

ReadThread20();
}



  在这里,使用了一个WaitAll的方法,他是WaitHandle基类提供给ManualResetEvent的静态方法,它的参数为我们在前面定义的ManualResetEvent数组。他阻塞当前的线程直到参数数组里面所有的ManualResetEvent对象设置状态为signaled,换一句话说就是等待他们完成了各自的任务。
天敏贴纸相框设计大赛,千元大奖等你拿!

[上一页] [1] [2] [3]

正在加载评论,请稍候…

发给好友 我要报错 投稿给我们 加入收藏 返回顶部

本栏今日更新
相关文章
·重锤出击!GreenBrowser新版发布
·再挑IE!Firefox1.1 Alpha2即将发布
·追踪报道:IE最新漏洞仍在调查中
·新闻一周谈:别让流氓软件耍无赖!
·下一个杀手级应用:Podcasting你玩了么?
·表情[卡通]:美女打劫你喔
·BT时开网页慢,有无解决办法?
·链表的C语言实现之动态内存分配
·c#多线程教学(4):线程池和异步编程
·c#.net多线程编程教学(3):线程同步
·.NET多线程编程(1):多任务和多线程
·C# 最强大的功能--泛型简介
·用C#屏敝3721网络实名
·利用Visual C#实现Window管道技术
·C#版的冒泡排序算法
·C# 特性(Attribute)入门教程

完美时尚娱乐:2004年腾讯QQ评测大观
精彩无限:MSN Shell4使用指南
亲手制作鲜花情人贺卡送给她
挑战伏明霞?企鹅跳水游戏,看你能得多少分?

新闻搜索
高级搜索
Flash排行榜
·头文字D主题曲-漂移
·无情的你!六月的雨
·冒险游戏-小破孩奔月
·南京话说唱!喝馄饨
·斗实力斗技术!篮球斗牛
·《童话》励志鼓励篇
·好玩!超级连连看
·惊险刺激!忍者之死
·搞笑好玩!倒霉机器人
·冒险游戏-金碟神偷
热点专题
·向"流氓软件"大声说不!
·电脑艺术设计大师之路连载
·老歌歪唱Flash MV爆笑欣赏
·2005年XP SP2全新技巧放送
·视频轻松学Dreamweaver教程
·瞩目!QQ2005 Beta1火热发布
·全面了解FireFox浏览器
·情人节感动MM的十首MV
·QQ辅助软件使用指南
·含泪惜别!毕业十大必唱歌曲
·想不到?常用软件的另类用法
·搜索技巧:网罗天下的乐趣
IT培训十大热门文章
-