对于我正在开发的游戏,我想将音频放到另一个线程上,这样我就可以将声音排队并让它们立即播放。我在该线程中使用的代码如下所示
private void _checkForThingsToPlay()
{
while (true)
{
if (_song != null)
{
_playSong(_song);
_song = null;
}
while (_effects.Count > 0)
_playSfx(_effects.Dequeue());
Thread.Sleep(100);
}
}
这异步运行并且运行良好。但是,如果没有睡眠调用,它会占用 cpu 上的整个核心。我的问题是, sleep() 是降低 CPU 使用率的有效方法还是有更好的方法来做到这一点?我和我的朋友觉得这是一个快速破解。