WPF中窗口控件的跨线程调用

发布时间 2023-08-25 13:46:56作者: 阿霖找BUG

在多线程里面,UI是不能直接跨线程使用的。

在WinForm中,我们要跨线程访问窗口控件,只需要设置属性CheckForIllegalCrossThreadCalls = false;即可。

在WPF中要设置Dispatcher属性。msg为要输出的内容

        private delegate void outputDelegate(string msg);

        private void output(string msg)
        {
            this.txtResult.Dispatcher.Invoke(new outputDelegate(outputAction), msg);
        }

        private void outputAction(string msg)
        {
            this.txtResult.AppendText(msg);
            this.txtResult.AppendText(" \n ");
        }