He heredado el código donde se invoca BeginInvoke desde el hilo principal (no un hilo de fondo, que suele ser el patrón). Estoy tratando de entender lo que realmente hace en este escenario.Implicaciones de rendimiento de BeginInvoke
¿El método al que se llama en el BeginInvoke entra en la línea de mensajes que bajan a la ventana? Los documentos dicen asynchronously
, así que esa es mi suposición.
¿Cómo prioriza la estructura cuándo iniciar el método llamado por BeginInvoke?
Editar: El código es el siguiente:
System.Action<bool> finalizeUI = delegate(bool open)
{
try
{
// do somewhat time consuming stuff
}
finally
{
Cursor.Current = Cursors.Default;
}
};
Cursor.Current = Cursors.WaitCursor;
BeginInvoke(finalizeUI, true);
Esto está sucediendo en el evento Form_Load.
@ John Knoeller, ¿estás diciendo que, en mi escenario, BeginInvoke tiene el peso del cambio de contexto del hilo? – AngryHacker
@AngryHacker: No, ahora que ha mostrado su código, está claro que esto es solo un PostMessage como JaredPar, su BeginInvoke es un método en el formulario, y por lo tanto _no_ ejecutará el delegado en un hilo separado. –