← 返回

Про GuiAsync

Хочу разобраться в работе функции GuiAsync. Не могли бы вы показать ее исходник?

本主题对您有帮助吗?

分享主题

评论 (4)

登录创建账户, 登录或注册以发表评论

Mikhail Sukhov
Mikhail Sukhov

Vasiily: Хочу разобраться в работе функции GuiAsync. Не могли бы вы показать ее исходник?

Это всего лишь обертка:

public static void GuiAsync(this Dispatcher dispatcher, Action action, DispatcherPriority priority)
		{
			if (dispatcher == null)
				throw new ArgumentNullException("dispatcher");

			if (action == null)
				throw new ArgumentNullException("action");

			if (dispatcher.CheckAccess())
				action();
			else
				dispatcher.BeginInvoke(action, priority);
		}

Вся магия в WPF.

Vasiily
Vasiily 作者

Спасибо

Сергей Гаврилов

Насколько я понял GuiAsync используется для маршалинга в поток формы.. Это так?

kydna
kydna

Для Windows.Forms код может выглядеть как то так:

        public void GuiAsync(MethodInvoker action)
        {
            if (action == null)
                throw new ArgumentNullException("action");

            if (!this.InvokeRequired)
                action();
            else
                this.Invoke(action);
        }