我在 Silverlight 4 应用程序中使用 RIA Services DomainContext 来加载数据。如果我使用来自 UI 线程的上下文,回调是否总是在 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
}
};
关于c# - 执行异步 RIA 服务调用时回调在哪个线程上执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7711725/