返回顶部
首页 > 资讯 > 精选 >WCF回调返回值实例分析
  • 224
分享到

WCF回调返回值实例分析

2023-06-17 19:06:37 224人浏览 薄情痞子
摘要

这篇文章主要介绍“WCF回调返回值实例分析”,在日常操作中,相信很多人在WCF回调返回值实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”WCF回调返回值实例分析”的疑惑有所帮助!接下来,请跟着小编一起来

这篇文章主要介绍“WCF回调返回值实例分析”,在日常操作中,相信很多人在WCF回调返回值实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”WCF回调返回值实例分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

客户端实现WCF回调时,如果回调函数有返回值,那么该返回值类型只能为基本类型,不能为接口类型,否则服务在回调时系统无响应,***超时,不报任何错误。

由于WCF回调方法并非运行在主线程中,如果WCF回调方法需要更新与异步调用结果相关的界面,例如本例中的lbMessage控件,则需要将回调的调用封送(Marshal)到当前主程序界面的同步上下文中。我们可以使用 SynchronizationContext以及它的SendOrPostCallback委托,对调用进行封送:

利用异步方式执行服务操作,使得服务在执行过程中不会阻塞主线程,当方法执行完成后,通过AsyncCallback回调对应的方法,可以通知客户端服务执行完毕。例如:

//Invoke it Asynchronously     m_service.BeginTransferDocument(m_doc,OnTransferCompleted,null);     //Do some work;     //callback method     void OnTransferCompleted(IAsyncResult result)     {     Stream stream = m_service.EndTransferDocument(result);     result.AsyncWaitHandle.Close();     lbMessage.Text = string.FORMat("The file {0} had been transfered sucessfully.",     m_doc.FileName);     }

在调用BeginTransferDocument()方法之后,主线程不会被阻塞,仍然可以继续执行其它工作。而当服务方法执行完毕之后,会自动调用WCF回调方法,执行方法中的内容。上述实现存在一个问题,就是对于lbMessage控件的操作。由于WCF回调方法并非运行在主线程中,如果回调方法需要更新与异步调用结果相关的界面,例如本例中的lbMessage控件,则需要将回调的调用封送(Marshal)到当前主程序界面的同步上下文中。我们可以使用 SynchronizationContext以及它的SendOrPostCallback委托,对调用进行封送:

public ExplorerClientForm()  {  InitializeComponent();  m_synchronizationContext = SynchronizationContext.Current;  }  private SynchronizationContext m_synchronizationContext;  }

到此,关于“WCF回调返回值实例分析”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: WCF回调返回值实例分析

本文链接: https://lsjlt.com/news/292035.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • WCF回调返回值实例分析
    这篇文章主要介绍“WCF回调返回值实例分析”,在日常操作中,相信很多人在WCF回调返回值实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”WCF回调返回值实例分析”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-17
  • vue中then后的返回值实例分析
    这篇文章主要介绍了vue中then后的返回值实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue中then后的返回值实例分析文章都会有所收获,下面我们一起来看看吧。then后的返回值Promise 中处...
    99+
    2023-06-29
  • thinkphp中m方法返回值实例分析
    这篇文章主要介绍了thinkphp中m方法返回值实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇thinkphp中m方法返回值实例分析文章都会有所收获,下面我们一起来看看吧。在thinkphp中,m方法的...
    99+
    2023-06-30
  • javascript中返回值的示例分析
    小编给大家分享一下javascript中返回值的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!带返回值的函数好吧,我们把alert(sum)一行改成下面的代码:return sum...
    99+
    2024-04-02
  • C语言中返回值的示例分析
    这篇文章给大家分享的是有关C语言中返回值的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 函数返回值定义的结构在<cstdlib>,其中有两个成员。为 di...
    99+
    2024-04-02
  • 如何实现WCF回调
    这篇文章主要为大家展示了“如何实现WCF回调”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何实现WCF回调”这篇文章吧。由于WCF回调方法并非运行在主线程中,如果WCF回调方法需要更新与异步调...
    99+
    2023-06-17
  • python 调用 shell ,获取返回值和返回信息
    网络上有各种方案解决python调用shell的解决方案,但是没有一个完美的,以下是本人整理的一个方案,比较完美地解决了同时解决获取返回值和返回信息。def run_linux_cmd_quiet(i_cmd, i_nohup='0...
    99+
    2023-06-02
  • python int返回的方法实例分析
    今天小编给大家分享一下python int返回的方法实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、int额外的方...
    99+
    2023-06-30
  • Shell中处理方法返回值的示例分析
    这篇文章主要介绍了Shell中处理方法返回值的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。测试程序我们一般通过$来获取上一个语句的输出。看一下下面得测试语句:新建t...
    99+
    2023-06-09
  • mybatisplus中返回Vo案例分析
    这篇文章主要介绍“mybatisplus中返回Vo案例分析”,在日常操作中,相信很多人在mybatisplus中返回Vo案例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mybatisplus中返回Vo案...
    99+
    2023-07-05
  • python怎么获取回调函数返回值
    在Python中,可以使用callback函数来获取回调函数的返回值。以下是一个示例: def callback_function(...
    99+
    2024-02-29
    python
  • C语言函数返回值与参数传递实例分析
    本篇内容介绍了“C语言函数返回值与参数传递实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一:参数传...
    99+
    2024-04-02
  • python中函数的返回值及类型实例代码分析
    这篇“python中函数的返回值及类型实例代码分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“python中函数的返回值及...
    99+
    2023-07-05
  • C#中ExecuteNonQuery()返回值注意点分析
    在C#中,ExecuteNonQuery()是用于执行不返回结果集的SQL语句(如INSERT、UPDATE、DELETE语句)的方...
    99+
    2023-08-15
    C#
  • JavaScript函数语法、函数调用和函数返回实例分析
    这篇文章主要介绍了JavaScript函数语法、函数调用和函数返回实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript函数语法、函数调用和函数返回实例分析...
    99+
    2024-04-02
  • C语言中返回值指针函数的示例分析
    这篇文章主要为大家展示了“C语言中返回值指针函数的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C语言中返回值指针函数的示例分析”这篇文章吧。   #inc...
    99+
    2023-06-29
  • C++返回值类型后置实现(跟踪返回值类型)
    在泛型编程中,可能需要通过参数的运算来得到返回值的类型。考虑下面这个场景: template <typename R, typename T, typename U>...
    99+
    2024-04-02
  • shell函数内调用另一个函数(不带返回值和带返回值)
    目录一、函数B调用不带返回值的函数A二、函数B调用带返回值的函数A,并接收函数A的返回值进行输出一、函数B调用不带返回值的函数A 新建文件,命名为 test.sh,添加如下代码: #!/bin/bash # 即将被调用...
    99+
    2022-08-08
    shell函数内调用另一个函数 shell函数调用
  • 解析go语言调用约定多返回值实现原理
    目录go简单代码反汇编go语言调用约定分析1.C/C++调用约定类别2.go语言调用约定go语言如何实现多返回值的总结go简单代码反汇编 用简单的代码用以分析go的调用约定及多...
    99+
    2022-06-07
    GO 调用 返回值 go语言
  • golang函数返回值的用例
    go 函数返回值常见用例包括:1. 传递错误;2. 返回多个结果;3. 返回命名返回值;4. 使用匿名返回值。通过返回错误,函数可以方便地处理错误;通过返回多个值,可以减少函数调用次数;...
    99+
    2024-04-23
    golang 函数返回值 代码可读性
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作