【发布时间】:2009-08-25 13:35:11
【问题描述】:
我有一个不重要的任务;如果网站被使用,它应该偶尔运行一次。
所以我尝试了这种方法:https://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/
任务可能很长,所以我希望它是异步的……这样导航就不会被后台任务停止。
我不明白的是,当我开始调试(附加到进程 w3wp.exe)时,在停止调试之前我无法在网站上导航?
这是代码(ResourceService 是托管在同一项目中的 ISS 上的 WCF 服务):
private void CacheItemRemoved(string taskName, object seconds, CacheItemRemovedReason r)
{
switch (taskName)
{
case MedianamikTasks.UpdateResources:
if (Config.EnableAutoResourceUpdate)
{
ThreadStart threadStart = ResourceService.UpdateResources;
var thread = new Thread(threadStart) {IsBackground = true};
thread.Start();
//Do not use... : http://csharpfeeds.com/post/5415/Dont_use_the_ThreadPool_in_ASP.NET.aspx
//ThreadPool.QueueUserWorkItem(x => ResourceService.UpdateResources());
}
break;
}
AddTask(taskName, Convert.ToInt32(seconds));
}
【问题讨论】:
标签: c# asp.net debugging asynchronous