前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C#线程同步CountdownEvent

C#线程同步CountdownEvent

作者头像
MaybeHC
发布2024-04-23 19:08:07
540
发布2024-04-23 19:08:07
举报
文章被收录于专栏:技术之路技术之路

CountdownEvent用于在完成指定的几个操作后悔发出信号。 下面通过代码来说下CountdownEvent。

代码语言:javascript
复制
static CountdownEvent _countdown = new CountdownEvent(2);
        static void PerformOperation(string message,int seconds)
        {
            Thread.Sleep(TimeSpan.FromSeconds(seconds));
            Console.WriteLine(message);
            _countdown.Signal();
        }
        static void Main(string[] args)
        {
            Console.WriteLine("Starting two operations");
            var t1 = new Thread(() => PerformOperation("Operation 1 is completed", 4));
            var t2 = new Thread(() => PerformOperation("Operation 2 is completed", 8));
            t1.Start();
            t2.Start();
            _countdown.Wait();
            Console.WriteLine("get _countdown");
            _countdown.Dispose();
        }

在创建CountdownEvent时可以设定需要完成几个操作时发送信号,这里我设置为两个,其含义是想要获得信号,在获得信号之前必须执行两次_countdown.Signal();否则线程将一直处于阻塞状态,在这个程序中便是主线程想获得_countdown,必须等待t1、t2两个线程执行_countdown.Signal();后才能获得该信号。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-04-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档