我正在使用silverlight 3.0进行申请。在该应用程序中,我有一个公共方法
public void DrawWavform()
{
Line[,] line = new Line[10,200];
line[i,j]= new Line();//i am getting error here of invalid thread access
//some operation
}
在应用程序中,我根据用户输入创建不同的线程,并从新创建的线程调用DrawWaveform方法。我想并行操作。请建议我解决。谢谢。
答案 0 :(得分:6)
必须在UI线程上执行更改GUI的任何操作。这可以使用dispatcher:
来完成Deployment.Current.Dispatcher.BeginInvoke( () =>
{
// update ui
});
或
(SomeDependencyObject).Dispatcher.BeginInvoke( () => { /* ... */ } );
无论如何,这个代码应该很少使用,只包含与UI相关的代码。在UI线程上执行昂贵的操作将导致应用程序挂起。