Ver Mensaje Individual
  #6 (permalink)  
Antiguo 27/02/2015, 22:17
agleiva
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 7 años, 10 meses
Puntos: 52
Respuesta: Crear puerto serie.

Los Elementos de UI (System.Windows.UIElement) de WPF no tienen ningun metodo Invoke() porque:

- invocar rutinas y administrar el threading no es una responsabilidad de un UI element. Esto es un error fundamental de winforms que te "enseña" a poner cualquier cosa en cualquier lado en lugar de tener un orden en lo que estas haciendo.

- WPF tiene un Threading Model (https://msdn.microsoft.com/en-us/library/ms741870(v=vs.110).aspx) que es orquestado y controlado por un componente llamado Dispatcher (https://msdn.microsoft.com/en-us/library/system.windows.threading.dispatcher(v=vs.110).aspx ). Este componente se encarga de coordinar las tareas de threading de toda la UI.
- Los UIElements de WPF a su vez son DispatcherObjects (https://msdn.microsoft.com/en-us/library/system.windows.threading.dispatcherobject(v=vs.110 ).aspx). Esto significa que todos los UIElements (Application, controles, ventanas, paneles, etc, etc) estan asociados a un Dispatcher, con lo cual, para contestar tu pregunta, la forma de llamar una invocacion desde un hilo de ejecucion ajeno a la UI, hacia la UI en WPF es usar el dispatcher del elemento en cuestion:

Código C#:
Ver original
  1. this.Dispatcher.Invoke(new EventHandler(Actualizar));

--------------------------

Por cierto, me interesó tu projecto Meta Shell, pero no lo pude descargar, esta el codigo fuente en algun lado? me interesa contribuir al proyecto ;)