不断运行的C#代码 - 服务还是单独的线程?

use*_*656 5 html c# multithreading entity-framework web-services

我有一个.NET 4 Web应用程序,它有3个独立的项目--DAL,BAL和UI.我正在使用Entity Framework进行数据库交互.

我有代码循环遍历一堆数据库数据,根据它找到的内容调用方法,然后更新数据库.我希望这段代码一直运行.同时,我希望用户能够在后台代码不断运行的同时登录并运行报表等.

对此有什么好处?我是否为不断运行的代码,单独的线程,为不断运行的代码完全独立的项目或不同的方法创建服务?

另外,根据给出的答案,我将如何启动不断运行的代码?即只是通过表格加载方法还是有更好的方法?我目前通过单击开始按钮启动代码; 这适用于测试,但在生产时无法正常工作.

Sli*_*SFT 5

您最适合将Windows服务用于始终运行的任务.

在IIS下的单独线程上运行代码不是一种可靠的机制,因为IIS可以随意终止线程以节省服务器资源.

  • 您也可以将服务设置为自动启动.还要确保您的访问代码握手并确保在魔术发生之前启动服务. (2认同)