![](/img/trans.png)
[英]Equivalent of Ihostedservice in asp.net framework for background tasks
[英]Background Tasks in ASP.NET / Debug
我的任務不重要; 如果使用該網站,則應每隔一段時間運行一次。
所以我嘗試了這種方法: http : //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));
}
我不明白的是,當我開始調試(附加到進程w3wp.exe)時,除非停止調試,否則我無法在網站上導航了?
只是一個猜測,但是您是否設置了斷點? 一旦您遇到斷點,w3wp進程中的執行就會在該點停止,因此您將無法在站點周圍“導航”。
使用后台工作者。
BackgroundWorker worker;
worker = new BackgroundWorker();
worker.DoWork += new DoWorkEventHandler(worker_DoWork);
worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);
worker.RunWorkerAsync();
然后在DoWork處理程序中調用所需的方法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.