0
我有一个在类中声明的整型数组。使用该数组,PolyLine在网格上绘制。数组的元素是y坐标。数组必须不断更新,然后才能显示值。我实现这个想法是有两个线程。一个用于更新数组的值,另一个用于在网格上打印PolyLine。 更新阵列不是问题。当我尝试使用下面的代码在网格上打印PolyLine时,将引发一个异常,并显示以下消息:“调用线程无法访问此对象,因为不同的线程拥有它。” 请建议使用线程解决此问题的解决方法。也许,一个事件可能被用来代替线程?我乐于接受建议。任何帮助表示赞赏!控制WPF元素
public partial class MainWindow : Window
{
Polyline Wave = new Polyline();
public MainWindow()
{
InitializeComponent();
Refresh();
DisplyOnGrid();
ThreadStart child = new ThreadStart(DisplyOnGrid);
Thread _DisplayOnGrid = new Thread(child);
_DisplayOnGrid.Priority = ThreadPriority.Highest;
_DisplayOnGrid.Start();
}
private void DisplyOnGrid()
{
Wave.Stroke = Brushes.Yellow;
Wave.StrokeThickness = 1.25;
for (int i = 0; i < DisplayGrid.Width; i++)
{
Wave.Points.Add(new Point(i, 50));
}
DisplayGrid.Children.Add(Wave);
}
private void Refresh()
{
DisplayGrid.Children.Clear();
}
}
为什么你从电网移除折线,然后添加它又是什么?你可以改为简单地替换它的'Points'集合。除此之外,您应该按照答案中所示使用分派器,或者根本不使用线程,而使用DispatcherTimer。 – Clemens