Descubrí una nueva sintaxis de C# y no entiendo lo que significa. Aquí está el código relacionado con la sintaxis:¿Por qué puedo usar una expresión lambda en lugar de un delegado de devolución de llamada?
1)
BeginInvoke(new Action(() =>
{
PopulateUI(ds);
}));
2)
private void OnFormLoad()
{
ThreadPool.QueueUserWorkItem(() => GetSqlData());
}
¿Cuál es el significado de new Action()
y cuál es el significado del símbolo =>
?
La sintaxis de ThreadPool.QueueUserWorkItem
era ThreadPool.QueueUserWorkItem(new WaitCallback(PrintOut), "Hello");
pero aquí muestra ThreadPool.QueueUserWorkItem(() => GetSqlData());
, entonces, ¿cómo funciona? ¿Por qué falta WaitCallback
? Por favor explique en detalle.
Muchas gracias.
*() => some_code * es una expresión lambda y es solo un atajo para escribir delegados anónimos. Creo que tu confusión es causada por demasiadas formas de lograr lo mismo. –
@Pauli Østerø: Muy bien dicho :) – BoltClock
'ThreadPool.QueueUserWorkItem ((= = GetSqlData());' no se compila en mi aplicación de prueba. ¿Qué versión de .NET Framework utiliza su proyecto (o al menos, qué versión de VS)? –