0

我正在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 方法。我想并行操作。请建议我解决方案。提前致谢。

4

1 回答 1

7

任何更改 GUI 的操作都必须在 UI 线程上执行。这可以使用调度程序完成:

Deployment.Current.Dispatcher.BeginInvoke( () =>
{
  // update ui
});

或者

(SomeDependencyObject).Dispatcher.BeginInvoke( () => { /* ... */ } );

无论如何,这段代码应该很少使用,并且只包含与 UI 相关的代码。在 UI 线程上执行昂贵的操作将导致您的应用程序挂起。

于 2012-07-20T07:08:59.650 回答