在ASP.net生命周期中进行线程化

时间:2017-07-27 13:09:28

标签: c# asp.net .net multithreading tcp

我需要在ASP.net Web App中进行一些TCP通信。

我已经构建了一个代码的工作原型,它使用winforms与服务器通信。我现在将这个代码实现到我的网络应用程序中,我不确定最好的方法是做什么。

此问题特定于与ASP页面生命周期相关的线程生命周期。

我想要触发一个执行TCP连接并从TCP服务器侦听事件的线程。

如果我从我的ASP.net Web应用程序中生成一个线程,这个线程的生命周期是什么?当重新创建页面生命周期并回发,刷新等时,它会继续运行“孤立”吗?或者,当在回发/刷新时重新创建生命周期时,页面会以某种方式清理它吗?

我想运行我的线程,直到我想手动停止它。

我正在尝试不同的选项,但我希望得到一些关于“正确”方法的想法,以实现我的最终结果。

(P.S。我的线程将使用来自TCP服务器的相关数据更新应用程序变量)。要在此Web应用程序的多个页面中使用的数据。

我的其他想法是运行独立的桌面应用程序/服务来收集数据并将其合并到IIS应用程序池会话中。 (但这是我的最后一招)

1 个答案:

答案 0 :(得分:1)

解决您的问题:

  

如果我从我的ASP.net Web应用程序中生成一个线程,这个线程的生命周期是什么?

它会一直运行,直到完成,或者直到你明确告诉它结束。这与任何其他应用程序中的线程相同。

  

当重新创建页面生命周期并回发,刷新等时,它会继续运行“孤立”吗?

页面生命周期完全无关紧要。该线程将继续独立于页面运行。

  

或者,当在回发/刷新时重新创建生命周期时,页面会以某种方式清理它吗?

参见上一个答案。

同样,我建议您不要采用这种方式并在Windows服务中实现线程方案。