我正在尝试在我的 WCF 服务中实现异步模式。被BeginMethod
调用,但对应EndMethod
的永远不会被调用。调试服务器,在不同的地方放置断点我注意到传递给BeginMethod
永远不会返回的回调。我怀疑这EndMethod
就是从未调用过的原因。
服务器代码结构如下:
IAsyncResult BeginMethod([params], AsyncCallback callback, object asyncState)
{
var task = Task<MyReturnType>.Factory.StartNew(()=>
{
//Do work here
return value;
});
return task.ContinueWith(r=>
{
callback(task);
return r;
});
}
MyReturnType EndMethod(IAsyncResult asyncResult)
{
return ((Task<MyReturnType>)asyncResult).Result;
}
我的断点EndMethod
永远不会到达,并且该行callback(task);
永远不会返回。