如何编辑C#任务之外的WPF数据?我使用标准WPF模板定义了一个UI。网格仅包含:
<TextBlock x:Name="myTextBox" Text="Original Text" />
在我的代码中,我有:
using System.Threading.Tasks;
using System.Windows;
namespace UpdateGUI
{
public partial class MainWindow : Window
{
private int myInt;
public MainWindow()
{
InitializeComponent();
myInt = 0;
Task.Factory.StartNew(() =>
{
myInt++;
myTextBox.Text = "New Text";
});
}
}
}
这会引发以下异常:
调用线程无法访问此对象,因为另一个线程拥有它。
哪个帖子拥有myTextBox?为什么我在编辑myInt时没有看到此错误?
答案 0 :(得分:0)
你要做的事是不可能的。您的代码在与UI线程分开的自己的线程中运行。
您需要了解有关WPF的更多信息。为了实现这一目标,我知道有两种解决方案:
选项1是执行此操作的常用方法,因此请了解双向绑定。调度员对你要做的事情来说太过分了。