Estoy usando un RIA Services DomainContext en una aplicación Silverlight 4 para cargar datos. Si estoy usando el contexto del hilo de la interfaz de usuario, ¿la devolución de llamada siempre va a estar en el hilo de la interfaz de usuario?¿Qué hilo ejecuta la devolución de llamada cuando se realiza una llamada de Servicios RIA asíncrona?
O dicho de otra manera, ¿la devolución de llamada siempre está en el mismo hilo que la llamada?
un código de ejemplo a continuación ilustra el escenario ...
private void LoadStuff()
{
MyDomainContext context = new MyDomainContext();
context.Load(context.GetStuffQuery(), op =>
{
if (!op.HasError)
{
// Use data.
// Which thread am I on?
}
else
{
op.MarkErrorAsHandled();
// Do error handling
}
}, null
);
}
Gracias Jehof, esto es útil para saber y es lo que he encontrado en la práctica. Sin embargo, estoy interesado en obtener una respuesta definitiva a mi pregunta específica: ¿es siempre el hilo de llamada el que recibe la devolución de llamada? (por ejemplo, si no estamos llamando al hilo de UI). – Chris
@Chris: Sí, la devolución de llamada se ejecuta en el hilo de llamada. La carga se realiza en una cadena de fondo y no es bloqueante para la cadena de llamada. – Jehof