Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#背景工人-使用列表报告进度<;员工>; 看到我的代码了吗_C#_Backgroundworker - Fatal编程技术网

C#背景工人-使用列表报告进度<;员工>; 看到我的代码了吗

C#背景工人-使用列表报告进度<;员工>; 看到我的代码了吗,c#,backgroundworker,C#,Backgroundworker,如果希望将列表作为UserState,则传递列表并删除对象数组 m_oWorker.ReportProgress(i, oEmp); 您仍然需要同步对列表的访问,没有创建副本,您仍然有两个线程试图访问它。如何使此函数线程安全m\u oWorker\u ProgressChanged我是否应该使用lock关键字…….它是否有效?@Mou是的,确实有效。 void m_oWorker_ProgressChanged(object sender, ProgressChangedEventArgs

如果希望将列表作为UserState,则传递列表并删除对象数组

m_oWorker.ReportProgress(i, oEmp);

您仍然需要同步对列表的访问,没有创建副本,您仍然有两个线程试图访问它。

如何使此函数线程安全
m\u oWorker\u ProgressChanged
我是否应该使用lock关键字…….它是否有效?@Mou是的,确实有效。
 void m_oWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
    List<Employee> oEmp = (List<Employee>)e.UserState;
    lblStatus.Text = "Processing......" + e.ProgressPercentage.ToString() + "%";
}
m_oWorker.ReportProgress(i, oEmp);