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):
- 睡眠:不好
- 封锁事件:好
2) 依靠一些全局“完成”变量(而不是在“TimeTick!=0”时退出!!!!)一旦
\u playing
设置为false
,线程就会终止。所以你不能继续。thread.Sleep总是一个坏主意,除了测试。谢谢!这个循环实际上只是为了测试一些不太有效的代码的其他部分,我对线程也很陌生。那个教程看起来真的很好,谢谢!这正是我需要的。