ManualResetEvent在线程里简单应用

本文介绍了在C#开发中如何利用ManualResetEvent进行线程控制,作为替代Thread.Suspend()和Resume()的方法。通过示例代码展示了如何启动、暂停和恢复线程,并提供了相关资源链接。
摘要由CSDN通过智能技术生成

        在C#开发过程中,需要用线程来处理比较复杂的逻辑,用Thread自身的相关函数比如Suspend(),Resume()等函数有时不能满足需求。使用ManualResetEvent比较简单实现Suspend(),Resume()等函数的功能。

     实现代码大体如下:

     Thread thread = null;//线程的声明

     ManualResetEvent manualEvent = new ManualResetEvent(true); //定义 初始状态为true,说明一开始有信号

    //线程运行的处理函数

    public void Run()
     {
            int cur_id = 0;
            for (int id = 0; id < Id_list.Count; id++)
            {
                 manualEvent.WaitOne();
                 //...逻辑的处理
           
                Thread.Sleep(1000);
              
            }
       }

  //启动一个线程

 thread = new Thread(new ThreadStart(Run));
 thread.Start();


//暂停一个线程的运行 Event没有信号,WaitOne()一直在等。

manualEvent.Reset();


//重让线程运行 Event有信

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值