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