Jad*_*son 6 .net multithreading
我们有一个桌面应用程序,它在后台线程中执行非常严格的计算集.此计算的一部分在我们通过互操作访问的非托管库中执行.我们发现的是,当我们开始计算时,UI线程在计算期间变得没有响应.我们的印象是框架将处理线程切换以允许UI继续响应,但事实并非如此.我们发现可以插入Thread.Sleep(0)或Application.DoEvents()以允许UI响应.这具有减慢计算的副作用.此外,非托管代码执行的部分计算可能需要30秒才能完成,在此期间应用程序始终无响应.整个计算可能需要两到五分钟才能完成.
这导致以下问题: