hdolder.com srl

  hdc Home    |    Contenido    |    KO1    |    Director    |    Direcciones    |    email
  Clase BUIThread

 

 

 

                            v178

Provee métodos para la interorperación con el UI Thread.

Permite "encolar" sincrónicamente (EnqueueAndWait) o asincrónicamente (Enqueue)  operaciones en la UI Thread. Es usada internamente en el BLOCK BBinding pero está disponible para ser usada en cualquier BLOCK.

Esta Clase es una pieza clave en el Procesamiento Paralelo de M&P TBW.

ambiente:

namespace: ob.gc

Propiedades

Dispatcher Dispatcher Dispatcher { get; set; }
Contiene una referencia al Dispatcher de la Pagina Base de la aplicación.
  

Métodos

Enqueuepublic static void Enqueue(DELX DEL)
Pone el Delegate DEL en la Cola de Atención del UI Thread para ser invocado por el Dipatcher. Ver Ejemplo 1.
Si el método se invoca en la UIThread el Delegate se invoca inmediatamente.
EnqueueAndWaitpublic static void EnqueueAndWait(DELX DEL, AutoResetEvent WE)
Pone el Delegate DEL en la Cola de Atención del UI Thread para ser invocado por el Dipatcher y espera la conclusión de la operación. Ver Ejemplo 2.
Si el método se invoca en la UIThread el Delegate se invoca inmediatamente.
  

Extension Methods .NET [R1]

GetControlProperty public static object GetControlProperty(
this FrameworkElement c,
String PropName)
Permite obtener el valor de la Property PropName de cualquier FrameworkElementdesde cualquier Thread.
Ejemplo:
DataGrid dg = ...
BIT bit = (BIT)dg.GetControlProperty("SelectedItem"); 
SetControlPropertypublic static void SetControlProperty(
this FrameworkElement c,
String PropName,
object value)
Permite asignar el valor value a la Property PropName de cualquier FrameworkElement  desde cualquier Thread.
Ejemplo:
HyperlinkButton hlbLogin = ...
hlbLogin.SetControlProperty("Visibility", Visibility.Visible);
  

Ejemplo 1

int arg1 = ...;
BUIThread.Enqueue(delegate()
{
   .........
    MyUIOpA(arg1);
    .........
});

Ejemplo 2

int arg1 = ...;
int res;

AutoResetEvent WE =
           new AutoResetEvent(false);

BUIThread.EnqueueAndWait(delegate()
{
    .........
    res = MyUIOpB(arg1);
    .........
    WE.Set();
}, WE);

Referencias

 

 

  TBW The BLOCKS World

©2012 hdolder.com srl  

Cjc2p3Syw
2011-12-16