5

Verileri yüklemek için bir Silverlight 4 uygulamasında bir RIA Services DomainContext kullanıyorum. Arabirimi UI iş parçacığından kullanıyorum, geri çağrı her zaman UI iş parçacığında mı olacak? Veya başka bir deyişle, geri arama her zaman çağrıyla aynı konuya mı ait? Eğer UI-Konu ile ilgili DomainContext yüke Yöntemi yürütmek durumundaEşzamansız bir RIA Hizmetleri çağrısı gerçekleştirilirken hangi geriçağırım yürütülür?

senaryoyu gösteren aşağıda bazı örnek kod ...

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 
     ); 
    } 

cevap

3

ardından da UI-Konu ile ilgili yürütülen geri arama olduğunu.

Bu, Load tarafından geri yüklenen LoadOperation'ın Tamamlanmış Olayını kullandığınızda da geçerlidir.

LoadOperation<Stuff> operation = context.Load(context.GetStuffQuery()); 
operation.Completed += (o, e) { 
    if (!operation.HasError) { 
    // Use data. 

    // Which thread am I on? 
    } 
    else { 
    op.MarkErrorAsHandled(); 
    // Do error handling 
    } 
}; 
+0

10 Teşekkürler Jehof, bu yararlı ve pratikte bulduğum şey yararlıdır. Özel soruma kesin bir cevap almakla ilgileniyorum - her zaman geri arama yapan çağrı ipi mi? (örneğin, UI dizisini çağırmıyorsak). – Chris

+0

@Chris: Evet, geri arama çağrı iş parçacığında yürütülür. Yükleme bir arka plan iş parçacığında yapılır ve çağıran iş parçacığı için engellenmez. – Jehof

İlgili konular