从MVC运行短期后台任务

时间:2012-09-10 14:30:44

标签: c# asp.net-mvc multithreading

我正在编写一个ASP.NET MVC 3应用程序。当用户登录时,我需要检查远程系统并从系统获取该用户的最新数据。此任务大约需要15秒。

用户应该能够在登录后直接输入我的应用程序(无需等待15秒进行远程呼叫!)。远程呼叫完成后,将更新用户本地信息。

我正在考虑使用一个线程来执行此操作,在他们登录并让它运行之后创建它。然而,在阅读之后,我在使用MVC中的线程时担心回收等问题。我会使用异步控制器,但我不需要向用户反馈此后台进程的状态。即使它们是短暂的,我是否也应该关注线程?

2 个答案:

答案 0 :(得分:5)

......关注回收......

...不需要向用户反馈状态......

...短命...

您应该使用ThreadPool.QueueUserWorkItem的3个理由。

答案 1 :(得分:0)

不要在网络应用中使用“线程”。让服务器使用“异步”调用来处理这个问题。 否则你必须设置一个线程池并对慢速请求进行排队。