我有List<MyClass>
个N个项目。我使用以下代码进行处理
foreach (var item in myList)
{
ThreadPool.QueueUserWorkItem(DoWorkWithItem, item);
}
private void DoWorkWithItem(object threadContext)
{
///...
}
但是我需要获取报告哪些项目被处理,我可以在哪里获得一个事件或什么来执行此任务
答案 0 :(得分:0)
创建事件并在威胁迭代完成后调用它,如下所示:
public class ClassWithDelegate
{
public delegate void ProgressReportEventHandler();
public static ProgressReportEventHandler ProgressReport { get; set; };
private void DoWorkWithItem(object threadContext)
{
// angry code
if (ProgressReport != null)
ProgressReport();
}
}
public class Subscriber
{
public Subscriber()
{
ClassWithDelegate.ProgressReport += ProgressReport;
}
public void ProgressReport()
{
//todo
}
}
或使用BackgroundWorker
,它有此事件