相关疑难解决方法(0)

暂停/恢复与AutoResetEvent相关的线程

在这段代码中,我想使用AutoResetEvent和bool变量暂停/恢复一个线程.如果阻塞== true,是否可以在每次测试时暂停(在for循环中工作())?测试"阻塞"变量也需要锁定,我认为这是耗时的.

class MyClass
    {
        AutoResetEvent wait_handle = new AutoResetEvent();
        bool blocked = false;

        void Start()
        {
            Thread thread = new Thread(Work);
            thread.Start();
        }

        void Pause()
        {
            blocked = true;
        }

        void Resume()
        {
            blocked = false;
            wait_handle.Set();
        }

        private void Work()
        {
            for(int i = 0; i < 1000000; i++)
            {
                if(blocked)
                    wait_handle.WaitOne();

                Console.WriteLine(i);
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

.net c# multithreading

5
推荐指数
1
解决办法
4535
查看次数

标签 统计

.net ×1

c# ×1

multithreading ×1