2

さて、コードは次のとおりです。

    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 などのように、強制的にシャットダウンするだけのように感じます。

多分それは正しい方法です、私にはわかりません。

これについてアドバイスをください。

4

2 に答える 2