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