【发布时间】:2009-07-20 10:18:45
【问题描述】:
我正在尝试创建一个与主进程异步工作的进度条。我创建了一个新事件并调用它但是每次我尝试在进度条上执行操作时都会收到以下错误:
“调用线程无法访问此对象,因为不同的线程拥有它”
以下代码尝试将进度条的实例作为对象发送到事件,它显然失败了,但它让您了解代码的外观。
private event EventHandler importing;
void MdbDataImport_importing(object sender, EventArgs e)
{
ProgressBar pb = (ProgressBar)sender;
while (true)
{
if (pb.Value >= 200)
pb.Value = 0;
pb.Value += 10;
}
}
private void btnImport_Click(object sender, RoutedEventArgs e)
{
importing += new EventHandler(MdbDataImport_importing);
IAsyncResult aResult = null;
aResult = importing.BeginInvoke(pbDataImport, null, null, null);
importing.EndInvoke(aResult);
}
有没有人知道如何做到这一点。
提前致谢 SumGuy。
【问题讨论】:
标签: c# wpf events asynchronous event-handling