He visto la configuración común para el acceso entre el roscado a un control de interfaz gráfica de usuario, tal como se discute aquí: Shortest way to write a thread-safe access method to a windows forms control¿Qué pasa con llamar a Invoke, independientemente de InvokeRequired?
Todas las visitas en la Web he encontrado describir una cosa similar.
Sin embargo, ¿por qué tenemos que comprobar InvokeRequired? ¿No podemos simplemente llamar a Invoke directamente?
Supongo que la respuesta es no, así que mi verdadera pregunta es '¿por qué?
¿Sabes cuánto tiempo estamos hablando? Supuse que había uno, pero supongo que es <0.5 segundos, lo que en la mayoría de las GUIs diría que es aceptable (aunque algunos pueden estar en desacuerdo) Supongo que Control.Invoke no comprueba InvokeRequired por motivos de rendimiento. – MattH
Oh, definitivamente <0.5s - aunque podría cronometrarlo por supuesto (por ejemplo, 10000 llamadas). –
Entonces, ¿está diciendo que 'Invoke()' no verifica automáticamente 'InvokeRequired' y ejecuta en línea el delegado pasado por sí mismo? – binki