Estoy tratando de llamar al System.Windows.Threading.Dispatcher.BeginInvoke
. La firma del método es la siguiente:Dispatcher.BeginInvoke: No se puede convertir lambda a System.Delegate
BeginInvoke(Delegate method, params object[] args)
Estoy tratando de pasarle un Lambda en lugar de tener que crear un delegado.
_dispatcher.BeginInvoke((sender) => { DoSomething(); }, new object[] { this });
Me está dando un error de compilación que dice que no puedo convertir el lambda a System.Delegate. La firma del delegado toma un objeto como parámetro y devuelve vacío. Mi lambda coincide con esto, sin embargo, no está funcionando. ¿Qué me estoy perdiendo?
Es un array 'params'. – SLaks
Pero does not (x) => {DoSomething(); } coincide con la firma del delegado? Pensé que eso era todo lo que debería especificar. – Micah
@Micah: System.Delegate no tiene una firma, es solo "cualquier delegado". Debe proporcionarle un tipo de delegado con un sig. que coincide con su uso. –