¿Por qué los elementos de la interfaz de usuario siempre se deben crear/actualizar desde el subproceso de interfaz de usuario?¿Por qué los elementos de la interfaz de usuario siempre se deben crear/actualizar desde el hilo de la interfaz de usuario?
En (¿casi?) Todos los elementos de la IU de lenguajes de programación se pueden acceder/modificar de forma segura solo desde el hilo de la interfaz de usuario. Entiendo que es un problema estándar de acceso concurrente y sincronización, pero ¿es realmente necesario? ¿Este comportamiento es impuesto por los lenguajes de programación o por el sistema operativo? ¿Hay algún lenguaje de programación donde esta situación sea diferente?
¿No sería más fácil para el marco hacer el control y ordenar la llamada en lugar de correr el riesgo de que alguien la llamara de una manera insegura en primer lugar? el framework .Net podría haberlo hecho por nosotros al menos ... – ak3nat0n
Yo diría que no. Si realiza una llamada a la propiedad Texto de un cuadro de texto, ahora mismo es un conjunto bastante rápido. Si aplica el manejo al marco, * cada * llamada estará sujeta a esa penalización, aunque la mayoría de las actualizaciones provengan del propio subproceso de la interfaz de usuario. – jasonh
@zaladane: Creo que puede no ser tan fácil determinar (automáticamente) cuándo se requiere código para ejecutarse en el subproceso UI. Yo preferiría una construcción en el lenguaje (tal vez un poco como la palabra clave insegura) para ejecutar una pieza específica de código en el subproceso UI. Eso sería un poco más fácil de leer que el código de Dispatcher. – Zyphrax