随笔 - 435  文章 - 0  评论 - 111  阅读 - 62万 

开2个线程, 在winform界面有个label, 第1个线程负责假如是label是奇数就+1; 第2个线程负责,假如label是偶数就加1; 希望2个线程交替执行, 从0加到50; 界面上的label也要依次变化

 

复制代码
        public static ManualResetEvent mr1 = new ManualResetEvent(false);//工位1阻塞信号 默认堵塞
        public static ManualResetEvent mr2 = new ManualResetEvent(false);//工位2阻塞信号 默认堵塞

 int CurrentNum = frm.GetText().ToInt();

            while (CurrentNum < 50)
            {
                CurrentNum = frm.GetText().ToInt();
                //偶数时,左工位线程执行+1
                if (CurrentNum % 2 == 0 && nFix == 1)
                {
                    mr1.WaitOne();
                    frm.SetText((CurrentNum + 1).ToString());
                    Console.WriteLine("左工位:" + (CurrentNum + 1));
                    
                    mr2.Set();
                    
                }
                //奇数时,右工位线程执行+1
                if (CurrentNum % 2 != 0 && nFix == 2)
                {
                    mr2.WaitOne();
                    frm.SetText((CurrentNum + 1).ToString());
                    Console.WriteLine("右工位:" + (CurrentNum + 1));
                    mr1.Set();
                   
                }

                
            }
复制代码

 

参考: https://www.bilibili.com/video/BV1gv411E7LH

https://www.cnblogs.com/masonlu/p/11470965.html

 

posted on   Gu  阅读(76)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
历史上的今天:
2018-08-20 sqlmap sql注入工具
2004-08-20 实现五颜六色的下拉框
点击右上角即可分享
微信分享提示