当前位置: 移动技术网 > IT编程>开发语言>.net > 多线程编程学习笔记——异步调用WCF服务

多线程编程学习笔记——异步调用WCF服务

2018年03月07日  | 移动技术网IT编程  | 我要评论

把弟,斯巴达克斯 第二季,淘宝交易

接上文

接上文

 接上文

 

 

         本示例描述了如何创建一个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的这个服务之后,得到的结果如下图。我的截图跟 略微有点区别。

 

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网