だから私はいくつかのNAudioのものを初期化するパラメータ化されたスレッドの開始を持っています...しかし、私は別のスレッドがNAudioスレッドに開始するように伝える必要があります。試してみると、クラッシュします。安全なクロススレッド通信を実装するにはどうすればよいですか?
スレッドは次のとおりです (このクラスは、メイン スレッドのオーディオ オブジェクトになります)。
class Audio
{
public IWavePlayer OutDevice;
public WaveStream OutStream;
public Thread thread;
public Audio(string file)
{
this.thread = new Thread(new ParameterizedThreadStart(InitAudio)); thread.Start(file);
}
private void InitAudio(object data) {
this.OutDevice = new WaveOut();
this.OutStream = new WaveChannel32(new Mp3FileReader(data.ToString()));
this.OutDevice.Init(OutStream);
}
}
メインスレッドで audio.OutDevice.Play(); を呼び出せるようにする必要があります。しかし、クロススレッドでクラッシュするため、できません。どうすればいいですか?