WCF服务器客户端与对象的异步回调
问题描述:
我有服务器和客户端。
客户端调用服务器上的方法,服务器响应必须准备一个字典并发送回客户端。
此操作可能需要时间。
它应该是异步的。我阅读说明和例子。
主要是BeginXXX和EndXXX IAsyncResult。但如果我需要服务器返回对象的字典。我如何实现这个?WCF服务器客户端与对象的异步回调
我认为当发送一个回调委托时,我可以发送一个客户端函数的签名作为委托,当服务器完成时它将调用具有适当字典数据的委托。
答
如果我明白你在一个正确的方式,你问这个(基于电子图书馆项目): WCF服务器端:
EBooksLibraryEntities ebe = new EBooksLibraryEntities();
public List<Book> tabBooks()
{
return ebe.Books.ToList();
}
客户端:
ServiceReference1.Service1Client sr = new ServiceReference1.Service1Client();
List<ServiceReference1.Book> llb = new List<ServiceReference1.Book>();
private void GetBooksByAuthor()
{
sr.tabBooksByAuthorCompleted += new EventHandler<ServiceReference1.tabBooksByAuthorCompletedEventArgs>(sr_tabBooksByAuthorCompleted);
sr.tabBooksByAuthorAsync();
}
void sr_tabBooksByAuthorCompleted(object sender, ServiceReference1.tabBooksByAuthorCompletedEventArgs e)
{
foreach (var item in e.Result)
{
yourList.Add(item);
}
}