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

标签 c# html multithreading web-services entity-framework

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

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

什么是解决这个问题的好方法?我是为持续运行的代码创建一个服务,一个单独的线程,为持续运行的代码创建一个完全独立的项目,还是其他方法......?

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

最佳答案

您最适合使用 Windows Services对于始终运行的任务

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

关于持续运行的 C# 代码 - 服务还是单独的线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11936684/

相关文章:

c# - 如何以编程方式更改/替换模板中的 StoryBoard?

c# - 在 Windows10 UWP 应用程序上使用 SendInput 发送滚动命令

javascript - 如何更改数组输出

html - 在 Html5 中,我可以使用表单重置按钮来重置可见字段吗

python - 为什么 python 要求你在等待条件之前获取锁

c++ - 在客户端上使用 gRPC C++,如何使库保持单线程?

c# - 卡在简单的单参数 lambda 和 bool 返回值

c# - 为什么接口(interface)在 IL 级别作为 "abstract interface"发出?

javascript - 将六边形网格数据存储到数组中

multithreading - 在非 GUI 线程中创建 QWidget