0

我正在构建一个简单的 wpf 应用程序。gui 有一个按钮,按下该按钮将创建一个后台线程。websocket 服务器将在这个后台线程上运行。websocket 服务器是事件驱动的。此服务器上可能有一段时间的低活动,但我不希望线程由于低容量而终止。有没有一种简单的方法可以使这个线程持久化(至少在应用程序终止之前)?

4

1 回答 1

1

为什么线程会因音量低而终止?线程只会在您告诉它时终止。即使您的应用程序和表单已关闭,后台线程很可能仍会运行。

我在一个线程中有一个与 TCPServer 类(使用 TCPListener)类似的东西,并且由于后台线程可以在 AcceptTcpClient() 中被阻塞(它是阻塞的并且处于无限循环中),因此 TCPListener 必须手动关闭:

public partial class MainForm : Form
{
    public TCPServer TCPServer = new TCPServer();
    private Thread ServerThread = null;

    private void button1_Click(object sender, EventArgs e)
    {
        ServerThread = new Thread(TCPServer.Run);
        ServerThread.Start();
    }

    private void OnApplicationExit(object sender, EventArgs e)
    {
        if (TCPServer.Server != null)
            TCPServer.Server.Stop();
     }
}
于 2012-09-06T02:57:34.143 回答