当执行异步RIA服务调用时,回调在哪个线程上执行
本文关键字:执行 线程 回调 RIA 异步 服务 调用 | 更新日期: 2023-09-27 18:11:01
我在Silverlight 4应用程序中使用RIA Services DomainContext来加载数据。如果我使用UI线程中的context,回调是否总是在UI线程中?
或者换句话说,回调是否总是与调用在同一个线程上?
下面的一些示例代码说明了这个场景…
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
);
}
如果在UI-Thread上执行DomainContext的Load-Method,那么回调是否也在UI-Thread上执行。
当你使用Load返回的LoadOperation的Completed-Event时也是如此。
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
}
};