2014-01-10 4 views
0

мне было интересно, если есть уборщик работы вокруг этого:Приведение действия в NSAction?

public class Sys 
{ 
    public static void DispatchAsync(Action action) 
    { 
     DispatchQueue.MainQueue.DispatchAsync(() => { action(); }); 
    } 
} 

Этот класс Sys является платформой нейтральный, поэтому действия должны быть типом параметра метода, но DispatchAsync НОД не будет действовать если это Тип действия, только как NSAction или работа вокруг здесь. , ,

ответ

0

Класс Sys не является нейтральным платформой, если используется Grand Central Dispatch. Лучше использовать Task.Run() и async/await.

И нет, нет лучшего способа, чем ваш обходной путь.

+0

Мой план состоит в том, чтобы переписать реализацию класса в зависимости от ОС, поэтому Sys должна быть реализацией интерфейса. , , –