我需要在ASP.net Web App中进行一些TCP通信。
我已经构建了一个代码的工作原型,它使用winforms与服务器通信。我现在将这个代码实现到我的网络应用程序中,我不确定最好的方法是做什么。
此问题特定于与ASP页面生命周期相关的线程生命周期。
我想要触发一个执行TCP连接并从TCP服务器侦听事件的线程。
如果我从我的ASP.net Web应用程序中生成一个线程,这个线程的生命周期是什么?当重新创建页面生命周期并回发,刷新等时,它会继续运行“孤立”吗?或者,当在回发/刷新时重新创建生命周期时,页面会以某种方式清理它吗?
我想运行我的线程,直到我想手动停止它。
我正在尝试不同的选项,但我希望得到一些关于“正确”方法的想法,以实现我的最终结果。
(P.S。我的线程将使用来自TCP服务器的相关数据更新应用程序变量)。要在此Web应用程序的多个页面中使用的数据。
我的其他想法是运行独立的桌面应用程序/服务来收集数据并将其合并到IIS应用程序池会话中。 (但这是我的最后一招)
答案 0 :(得分:1)
解决您的问题:
如果我从我的ASP.net Web应用程序中生成一个线程,这个线程的生命周期是什么?
它会一直运行,直到完成,或者直到你明确告诉它结束。这与任何其他应用程序中的线程相同。
当重新创建页面生命周期并回发,刷新等时,它会继续运行“孤立”吗?
页面生命周期完全无关紧要。该线程将继续独立于页面运行。
或者,当在回发/刷新时重新创建生命周期时,页面会以某种方式清理它吗?
参见上一个答案。
同样,我建议您不要采用这种方式并在Windows服务中实现线程方案。