關閉它好了好了,這裏是代碼:線程循環,以最佳的方式
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);
}
}
It's上線,和幸福,從UDP接收數據並播放,沒什麼奇怪的。
然而,我的問題是讓它正常停止,或者好,不知道如何放置它。
但讓我們說,我開始線程,它循環。 然後,如果我關閉我的應用程序,應用程序不會「關閉」,因爲線程不會關閉。
現在要解決這個問題,我使用IsBackground = true。
但我不確定這是否是一個最佳的方式來做到這一點,它感覺就像強迫它關閉,像ProcessKill或其他東西。
也許這是正確的方式,我不知道。
請給我這方面的意見。
你是否有正在運行和玩的線程的句柄?如果是,請調用thread.abort方法。如果不保持手柄並使用它來關閉自身。 – Ehsan
您正在關閉應用程序。你設置'IsBackground = true',應用程序關閉,好嗎?如果是這樣,你想要多少最佳? –