多线程更新GUI-OnUIThread

在UI线程上异步执行操作,不阻塞在调用线程上的执行。
WPF

        public static void OnUIThread(this Control control, Action action)
        {
            if (control.Dispatcher.CheckAccess())
            {
                control.Dispatcher.BeginInvoke(action);
            }
            else
            {
                control.Dispatcher.Invoke(action);
            }
        }
    btn.OnUIThread(() => btn.IsEnabled = true);

WinForm

    public static void OnUIThread(this Control control, Action code)
    {
        if (control.InvokeRequired)
        {
            control.BeginInvoke(code);
        }
        else
        {
            code.Invoke();
        }
    }

猜你喜欢

转载自www.cnblogs.com/wesson2019-blog/p/12126283.html
今日推荐