← Zurück

Про GuiAsync

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

War dieses Thema hilfreich?

Thema teilen

Kommentare (4)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

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 Autor

Спасибо

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

Насколько я понял 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);
        }