多线程编程学习笔记——异步调用WCF服务
2018-06-18 04:01:01来源:未知 阅读 ()
接上文 多线程编程学习笔记——使用异步IO
接上文 多线程编程学习笔记——编写一个异步的HTTP服务器和客户端
接上文 多线程编程学习笔记——异步操作数据库
本示例描述了如何创建一个WCF服务,并宿主在命令行应用程序中,客户端可以访问服务元数据,并以异步的方式消费它。
首先,我们创建了一个WCF服务。关于如何创建WCF服务,可以参考我之前的文章(WCF学习之旅—第三个示例之一(二十七)至WCF学习之旅—第三个示例之五(三十一))
然后,我们进行异步调用WCF的代理代码的生成。
第三、在visual studio 的资源管理器中,鼠标右键,在弹出菜单中选择“添加服务引用…”。如下图。
第四、在“添加服务引用”界面中,在选中需要添加的服务之后,点击“高级”按钮,在“服务引用设置”中选中“生成异步操作”,然后点击“确定”。如下图。
第五, 在解决方案资源管理器中,选中“FrmBook.cs”文件,在弹出的右键菜单中选择“打开”,或者使用鼠标左键双击。
第六, 在FrmBook.cs界面中,添加“异步查询选中书籍”按钮,并用鼠标双击按钮。
第七, 然后在 buttonAsyncGetBook_Click事件处理程序中添加以下代码:
/// <summary> /// 异步查询书籍信息 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void buttonAsyncGetBook_Click(object sender, EventArgs e) { Books book = new Books(); var client=GetAsyncBook(book); // client.GetAwaiter().GetResult(); // ShowBook(); } private async Task GetAsyncBook(Books book) { BookServiceRef.BookServiceClient bookSvrClient = new BookServiceRef.BookServiceClient(); if (gridBooks.SelectedRows.Count > 0) { book = gridBooks.SelectedRows[0].DataBoundItem as Books; textBoxMsg.Text = book.BookID.ToString(); await Task.Delay(200); var result = bookSvrClient.GetBookAsync(book.BookID.ToString()); textBoxMsg.Text = result.Result; } else { textBoxMsg.Text = "没有选中相应的记录!"; } }
第八,使用异步调用WCF的这个服务之后,得到的结果如下图。我的截图跟WCF学习之旅—第三个示例系列 略微有点区别。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 学习Java 8 Stream Api (4) - Stream 终端操作之 collect 2020-06-11
- java学习之第一天 2020-06-11
- Java学习之第二天 2020-06-11
- Spring WebFlux 学习笔记 - (一) 前传:学习Java 8 Stream Ap 2020-06-11
- Linux简单命令的学习 2020-06-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash