i_a*_*orf 10 c# multithreading threadpool
我在报告模式下有一个带有ListView的Windows窗体.对于视图中的每个项目,我需要执行一个长时间运行的操作,其结果是一个数字.
我在本机win32中执行此操作的方法是为每个项创建一个工作线程(天真地;当然我不会创建无限数量的线程),然后在线程句柄数组上创建MsgWaitForMultipleObjects().当每个计算完成时,线程信号和主UI线程唤醒并更新.同时,我们抽取消息,以便UI线程保持响应.
任何人都可以提供一个如何在C#中工作的例子吗?我看过Monitor对象,它似乎不是我想要的 - 或者是否在阻塞时抽取消息?
谢谢.
编辑:似乎WaitHandler.WaitAny()可能实际上是在发送消息.请参阅cbrumme关于 CLR中消息抽取的论文.