Wcf 在异步调用中不执行回调函数
我试图用WCF进行一个简单的异步调用,但从未执行回调函数。谁能告诉我代码有什么问题吗 我正在使用visual studio 2008和.Net 3.5 服务代码Wcf 在异步调用中不执行回调函数,wcf,asynchronous,callback,Wcf,Asynchronous,Callback,我试图用WCF进行一个简单的异步调用,但从未执行回调函数。谁能告诉我代码有什么问题吗 我正在使用visual studio 2008和.Net 3.5 服务代码 [ServiceContract] public interface IService1 { [OperationContract(AsyncPattern = true) ] IAsyncResult BeginGetData(string value, AsyncCallback callback, object
[ServiceContract]
public interface IService1
{
[OperationContract(AsyncPattern = true) ]
IAsyncResult BeginGetData(string value, AsyncCallback callback, object state);
string EndGetData(IAsyncResult result);
}
public class Service1 : IService1
{
#region IService1 Members
public IAsyncResult BeginGetData(string value, AsyncCallback callback, object state)
{
return new CompletedAsyncResult<string>(value, state);
}
public string EndGetData(IAsyncResult r)
{
CompletedAsyncResult<string> result = r as CompletedAsyncResult<string>;
return result.Data;
}
#endregion
}
class Program
{
static void Main(string[] args)
{
Service1Client client = new Service1Client();
Console.WriteLine("Start async call");
IAsyncResult result = client.BeginGetData("abc", callback, null);
Console.ReadLine();
}
static void callback(IAsyncResult result)
{
string a = "in callback";
Console.WriteLine(a);
}
}
您需要显式地调用回调
IAsyncResult result = client.BeginGetData("abc", callback, null);
callback(result);
Console.ReadLine();
请参阅此处的参考资料
+1是的,您缺少最基本的部分。如果不在BeginInvoke中指定回调,将如何调用它?其他链接供您参考