好的,这里是代码:
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 之类的。
也许这是正确的方法,我不知道。
请给我这方面的建议。