C# 使用标志恢复已停止的线程

C# 使用标志恢复已停止的线程,c#,multithreading,C#,Multithreading,我有以下代码: class SoundPlayback { protected volatile bool _playing; public bool Playing {...} protected void Begin() { while (Playing && _sheet.TimeTick != 0) { _sheet.Play

我有以下代码:

class SoundPlayback
{ 
        protected volatile bool _playing;
        public bool Playing {...}

        protected void Begin()
        {
            while (Playing && _sheet.TimeTick != 0)
            {
                _sheet.PlaySounds();
                Thread.Sleep(_sheet.TimeTick);
            }
            _playing = false;
        }
}
我有一个线程调用Begin()和thread start,这是第一次正常工作,但是当_playing为false并且我想恢复播放时,我无法继续。 非常感谢您的帮助。

线程(任何线程,而不仅仅是.Net):

  • 睡眠:不好

  • 封锁事件:好

请阅读本最优秀教程中的“同步要点”:

并将循环更改为:

1) 调用其他一些函数来执行“工作”


2) 依靠一些全局“完成”变量(而不是在“TimeTick!=0”时退出!!!!)

一旦
\u playing
设置为
false
,线程就会终止。所以你不能继续。thread.Sleep总是一个坏主意,除了测试。谢谢!这个循环实际上只是为了测试一些不太有效的代码的其他部分,我对线程也很陌生。那个教程看起来真的很好,谢谢!这正是我需要的。