さて、コードは次のとおりです。
private void Receivev2()
{
try
{
using (UdpClient udpclient = new UdpClient(1500))
{
while (connect == true)
{
byte[] byteData = udpclient.Receive(ref remoteEP);
waveProvider.AddSamples(byteData, 0, byteData.Length);
if (Record == true)
{
waveWriter.Write(byteData, 0, byteData.Length);
}
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "VoiceChat-Receive ()", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
スレッド上にあり、udp からデータを受信して再生しますが、何も変ではありません。
しかし、私の問題は、それを正常に停止させることです。または、それを置く方法がわかりません。
しかし、たとえば、スレッドを開始するとループします。次に、アプリケーションを閉じても、スレッドが閉じていないため、アプリケーションは「閉じません」。
それを解決するために、IsBackground = true を使用します。
しかし、それが最適な方法であるかどうかはわかりません。ProcessKill などのように、強制的にシャットダウンするだけのように感じます。
多分それは正しい方法です、私にはわかりません。
これについてアドバイスをください。