我建立一个简单的WPF应用程序。 gui有一个按钮,当按下时, 会创建一个后台线程。 websocket服务器将在这个后台线程上运行。 websocket服务器是事件驱动的。有可能是这个服务器, 低活动的周期,但我不想线程由于低容积终止。是否有一个简单的方法可以使这个线程持久化(至少在应用程序终止之前)?持久线程执行
Q
持久线程执行
0
A
回答
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();
}
}
+2
由于未处理的异常,线程也可以终止。 –
+0
谢谢罗姆兹(和其他人回复)。它可能会由于低音量(除非存在Keepalive)而超时,但该线程应该保留。 –
相关问题
- 1. C#线程,线程不持久
- 2. 线程在执行后保持存活
- 3. 作业执行和持久性
- 4. 执行后切换持久性框架?
- 5. 使用多线程的JPA持久性
- 6. java中的多线程持久队列
- 7. Android工作线程持续多久?
- 8. 线程执行
- 9. 阻止Workflow Foundation 3.5持久执行工作流程的方法
- 10. 持久线程vs设备端入队/嵌套并行
- 11. Firebase for Unity - 离线持久
- 12. JQueryMobile MVC和离线持久
- 13. 学说2,需要执行代码前持久性/后持久性
- 14. 执行线程onSensorChanged
- 15. 线程不执行
- 16. .net线程执行
- 17. 而线程执行
- 18. 持久AWK程序
- 19. 通过ssh运行持久化进程
- 20. 执行并行线程池
- 21. 执行线程'平行'
- 22. Linux线程执行流程
- 23. 执行多线程进程
- 24. 执行多线程程序
- 25. 线程池执行程序
- 26. Android线程 - 在执行所有其他线程之前执行一个线程
- 27. C++线程的执行时间和执行线程在另一个线程
- 28. std ::线程何时执行线程?
- 29. 蟒蛇如何保持一个线程执行,直到其他线程完成
- 30. 保持子线程运行
只要线程不退出,它会持续 –
@PeterRitchie除非整个应用程序池被回收,其可以是列于共享主机显影剂控制。 UPD。对不起,它的作品“直到应用程序终止”。 – aiodintsov
Walter,“应用程序终止前”是什么意思?如果配置如此,IIS池可按计划进行回收。您可以通过WebClient将其称为自己的保持活动状态,但要保持运行状态),但仍可能会被迫回收。 – aiodintsov