G'day Folks,
Мне кажется, что я не вижу ничего базового.
Действие определяется как открытый делегат void Action ().
DispatchedHandler определен как открытый делегат void DispatchedHandler ().
Тем не менее в строке RunASync генерируется следующий код: Ошибка CS1503 Аргумент 2: невозможно преобразовать из 'System.Действие 'для' Windows.UI.Core.DispatchedHandler '.
public static async Task DispatchToUI(Action action, CoreDispatcherPriority priority = CoreDispatcherPriority.Normal )
{
if (CoreApplication.MainView.CoreWindow.Dispatcher.HasThreadAccess)
{
action();
}
else
{
await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync( priority, action );
}
}
Добавление явного преобразования таким образом:
await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync( priority, (DispatchedHandler)action );
завершается ошибкой с ошибкой CS0030 Невозможно преобразовать тип' System.Action 'в«Windows.UI.Core.DispatchedHandler».
Таким образом, одна версия открытого делегата void () не может преобразоваться в другую версию открытого делегата void ()?