我正试图在多线程应用程序中解决Mac上SL的奇怪问题。我的应用程序使用ThreadPool来排队各种不同的工作项。我的方法HandleRequest
仅通过ThreadPool.QueueUserWorkItem(new WaitCallback(HandleRequest))
调用。
应用程序运行速度非常慢,所以我从Windows远程调试并暂停它以找到一堆卡在HandleRequest中的线程因为它们在有限的资源上等待。这很好,因为那里还有另一个问题,但我也注意到在主线程中有一个HandleRequest等待。怎么会发生这种情况?我以为ThreadPool在后台创建了工作线程并执行了它们的任务。
是否发生这种情况是因为ThreadPool已经耗尽了工作线程,因此使用调用线程来尝试执行回调方法?