它可以正常工作,但有一个不良副作用。
当执行QueueUserWorkItem回调过程时,没有任何东西可以阻止它启动新线程。这会导致线程中的样本重叠。
我该如何使其等待已经运行的线程完成后再运行下一个请求?
编辑:
private object sync = new Object();
lock (sync) {
.......do sound here
}
这个方法有效。按顺序播放声音。但是,当我在正在播放的声音结束之前不断发送声音请求时,某些样本会被重复播放。我将进行调查。
编辑:上述是否是@Aaronaught提到的锁竞争的结果?