3
這可能是由於缺乏對底層操作的理解,或者僅僅是缺乏對線程的理解。當用戶登錄時,我需要運行一些調用Web服務的任務來更新系統中的數據。由於服務可能需要相當長的時間,因此我將整個過程貫穿始終。但是,即使我認爲我在與應用程序分離的線程中運行了整個系列任務,我的應用程序仍會一直等到被調用函數完成後再繼續。ThreadPool.QueueUserWorkItem導致應用程序掛起直至完成
WindowsIdentity identity = WindowsIdentity.GetCurrent();
Manager manager = (Manager)Session["Manager"];
ThreadPool.QueueUserWorkItem(new SafeWaitCallback().Call(identity, delegate(object noCallBack)
{
manager.RunAccountUpdater(identity);
}));
應用程序掛起,直到函數「RunAccountUpdater」完成併發生回調。我做錯了什麼/不理解?
這裏有任何相關的線程同步代碼嗎?加入?鎖?互斥?任何類似於Control.Invoke?還有什麼可能會阻止? – 2010-12-10 00:37:11