Wpf 在dowork事件(后台工作程序)中调用方法时出错

Wpf 在dowork事件(后台工作程序)中调用方法时出错,wpf,multithreading,c#-4.0,methods,backgroundworker,Wpf,Multithreading,C# 4.0,Methods,Backgroundworker,我的代码中有两段相同的大代码,所以我创建了一个方法并将其放在那里。我在代码中调用该方法两次,第一次是正常调用,第二次是从doWork事件(后台工作者)调用。问题是当它执行时(在doWork中),我的程序停止响应。。。 所以我的问题是,如何从doWork事件调用方法 编辑:一些代码 private void parseHtmlFile(string file) { // here i parse an html file and fill some arraylists. } // this i

我的代码中有两段相同的大代码,所以我创建了一个方法并将其放在那里。我在代码中调用该方法两次,第一次是正常调用,第二次是从doWork事件(后台工作者)调用。问题是当它执行时(在doWork中),我的程序停止响应。。。 所以我的问题是,如何从doWork事件调用方法

编辑:一些代码

private void parseHtmlFile(string file)
{
// here i parse an html file and fill some arraylists.
}

// this is the event where i call method on click
private void MenuItem_NewPr(object sender, RoutedEventArgs e)
{
parseHtmlFile(file);// in this case program works well.
}

// do work 
worker.DoWork += (s, e) =>
{
var file = e.Argument as string;
parseHtmlFile(file);// in this case program stop responding.
}

编辑2:我在方法中更改了一些内容,现在它没有崩溃,但我现在有另一个问题。dowork方法不执行存在于我的方法调用语句下面的代码。我在那里设置了一个断点,但从未到达那里…

那么这个方法做什么呢?如果你能提供一个简短但完整的程序来演示这个问题,这将非常有帮助。问题是当从dowork调用此方法时,应用程序停止响应,没有调试错误。同样,您需要提供一些实际代码。例如,如果您从非UI线程访问UI,这是一个bug。我理解,但我不知道应该提供什么。我只是将dowork事件中的代码替换为call method语句,该语句(方法)包含完全相同的代码。。谢谢死锁在这样的代码中非常常见,HTML解析器从来都不是线程安全的。检查典型的方法。并且确保永远不要等待BGW完成,这也会导致死锁。