我查找相关数据发现 Windows 商店应用程序仅支持异步 WCF 调用以确保响应式 UI。这是一个相对的问题。
我实现了我的数据服务并这样做了。这是代码:
MyDataServiceContext ctx = new MyDataServiceContext(uri);
DataServiceQuery<COURSE_OK> query =
(DataServiceQuery<COURSE_OK>)(from crs in ctx.COURSE_OK
select crs);
TaskFactory<IEnumerable<COURSE_OK>> tf = new TaskFactory<IEnumerable<COURSE_OK>>();
var result = await tf.FromAsync(query.BeginExecute(null, null),
ira => query.EndExecute(ira)); // InvalidOperationException
foreach (var a in result)
{
System.Diagnostics.Debug.WriteLine("{0}", a.TITLE);
}
我只成功了一次,之后它总是在 query.EndExecute(ira) 方法中崩溃,并说 InvalidOperationException 未被用户代码处理。
此外,它在控制台应用程序中运行良好。我想主要问题是 Windows 商店应用程序,但如何解决这个问题?