Próbuję zadzwonić pod numer System.Windows.Threading.Dispatcher.BeginInvoke
. Sygnatura metody jest następująca:Dispatcher.BeginInvoke: Nie można przekonwertować lambda na System.Delegate
BeginInvoke(Delegate method, params object[] args)
Próbuję przekazać to Lambda zamiast tworzenia Delegata.
_dispatcher.BeginInvoke((sender) => { DoSomething(); }, new object[] { this });
Daje mi błąd kompilatora mówiąc, że nie mogę przekonwertować lambda na System.Delegate. Podpis delegata przyjmuje obiekt jako parametr i zwraca nieważne. Moja lambda pasuje do tego, ale nie działa. czego mi brakuje?
Jest to 'params' tablicą. – SLaks
Ale nie (x) => {DoSomething(); } pasuje do podpisu delegata? Myślałem, że to wszystko, co powinienem określić. – Micah
@Micah: System.Delegate nie ma podpisu - to po prostu "dowolny delegat" w ogóle. Musisz podać mu typ delegata z sig. który pasuje do twojego użycia. –