C# winform 与 WPF 防止界面卡死

我们一般通过线程来防止界面卡死
如果我们在线程中直接修改控件状态和信息那么则会出现如下错误:
在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThread

解决方法为,所有需要改变控件状态的都是用委托的方式:

winform

private void loadInfo() {
    this.Invoke((MethodInvoker)delegate { this.label1.Text = "test"; });
}

WPF

private void loadInfo() {
    this.Dispatcher.BeginInvoke(new Action(()=> {
    	 this.label1.Text = "test";
     }));
}

你可能感兴趣的:(C#,C#.WPF)