Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用TaskFactory.FromAsync调用SOAP Web服务

使用TaskFactory.FromAsync调用SOAP Web服务
EN

Stack Overflow用户
提问于 2013-09-26 06:26:24
回答 1查看 2.4K关注 0票数 1

我有一个带有不同异步方法和它们的completed_eventhandlers的web服务。每当webservice方法完成时,它都会执行其事件处理程序。现在,在我的服务层中,我有一个泛型方法,它将使用Func委托调用这些异步webservice方法。请注意,所有的webservice方法都有相同类型的签名。

请指导我如何使用Task,以便我的服务层方法也是异步的,以便调用这些异步方法,并将从事件处理程序接收到的响应提供给用户。

框架是.NET 4.0

请举一个例子进行指导

EN

回答 1

Stack Overflow用户

发布于 2013-09-26 09:02:43

在APM4.5中,你可以创建一个代理来返回异步调用的任务,而不是.NET风格的方法(BeginX/EndX)

在APM 4中,您可以使用Task.Factory.FromAsync将.NET方法转换为任务。假设您的服务方法接收到单个参数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public MyResponse MyCall(MyRequest request);

您可以使用如下代码将APM风格的调用(Begin/End)转换为Task:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var myRequestObject =...;

var callTask=Task<MyResponse>.Factory.FromAsync(
        client.BeginMyCall, 
        client.EndMyCall, 
        myRequestObject,
        null);  // The state object, typically not used

要使用更多参数,请使用接受更多参数的重载之一(最多3个)

多个FromAsync重载可能会非常令人困惑,编译器可能会抱怨找不到泛型参数的类型。

诀窍是理解第一个参数只需要IAsyncResult对象,而第二个参数需要处理最终结果的函数。即使是接受Func<>作为第一个参数的重载,也要立即运行它并继续使用IAsyncResult

上面的调用等同于:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var ar=client.BeginMyCall(myRequestObject,null,null);
var callTask=Task<MyResponse>.Factory.FromAsync(ar,client.EndMyCall);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19020866

复制
相关文章
Android应用权限检查
现在应用市场的要求越来越高了,而且随着Android版本的升级,官方对于权限这部分的管控越来越严格,因此我们秉着最少可用原则,绝不向用户申请额外的权限,但由于团队规模越来越大,很难保证某个模块没有新增权限,所以我们需要一个工具可以简单的给出每个版本应用的权限变化信息。
岛哥的质量效能笔记
2021/08/18
8590
Android应用权限检查
OpenCV 在 Android 上的应用
在 Android Studio 中创建一个 Library,将官网下载的 OpenCV 导入后,就可以直接调用 OpenCV 中 Java 类的方法。
fengzhizi715
2020/05/04
2.2K0
上架Google Play应用如何适配Android 11?
在Android 10 中,Google首次引入了分区存储。分区存储是需要以 Android 10 为目标平台,系统默认强制执行。
APICloud官方
2021/05/18
1.1K0
上架Google Play应用如何适配Android 11?
Android 检查应用是否有root权限
最近写项目的自动化测试,为了尽可能的模拟真实的使用场景,会有一些夸应用的用户点击、输入等事件的模拟。对于ROOT的机器,这个自然很容易做到,但是对于非root的机器,只能提供降级服务。总不能因为这个原因根据是否root还要用两套测试程序或者工具。 要根据不同的机器上应用能获取的权限类型不同和差异化的提供测试脚本,就需要在代码中检查当前应用是否有root权限。个人采用的是直接在代码中执行一个需要root权限的adb命令,根据返回值来检测。 事例代码: …… File file = new File(file
子勰
2018/05/22
2.5K0
如何在 Linux 上检查可用的磁盘空间
在 Linux 上查找可用磁盘空间的最简单的方法是使用 df 命令 。df 命令从字面意思上代表着 磁盘可用空间(disk free),很明显,它将向你显示在 Linux 系统上的可用磁盘空间。
用户1880875
2021/09/13
1.9K0
如何检查 Android 设备是否支持 Widevine DRM
想知道您的 Android 设备是否可以流式传输来自 Netflix 和 Amazon Prime Video 的高清视频?这是检查 Widevine DRM 支持的方法!
天天Lotay
2023/10/15
2.8K0
如何检查 Android 设备是否支持 Widevine DRM
关于MVP架构在Android上的应用
最近研究了一下android开发的一些框架,对于开发整体上具有一定好处,对于拓展测试修改也具有一定的优势。
Mezereon
2019/02/25
6890
关于MVP架构在Android上的应用
Android上的Web应用开发工具
最后,因为我的手机是带全键盘的,并且是5行,独立数字键,所以,用来敲代码很爽,尤其是平时上课的时候,想到的一些片段,用来记录不错~
libo1106
2018/08/08
8640
Mysql安全检查(上)
1.确保MYSQL_PWD环境变量未设置 描述 MYSQL_PWD环境变量的使用意味着MYSQL凭证的明文存储,极大增加MySQL凭据泄露风险。
陈不成i
2021/06/11
1.8K0
防止 Windows 上的内存检查
像往常一样,我的反调试相关帖子,一切都从微软没有记录的一点无害标志开始。或者至少我是这么认为的。
franket
2021/06/16
4.3K0
Adapter与ListView的简单应用(上)Android应用界面开发
所谓适配器,是一个在“用户界面”View和“数据模型”Model之间的"控制器"Controller
爱因斯坦福
2018/09/10
7540
Android应用开发SharedPreferences存储数据的使用方法
SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的就是一个key-value(键值对)SharedPreferences常用来存储一些轻量级的数据. 1.存储数据 //实例化SharedPreferences对象(第一步) SharedPreferences mySharedPreferences= getSharedPreferences("test", Activity.MODE_PRIVATE); //实例化SharedP
水击三千
2018/02/27
9190
Linux 上如何禁用 USB 存储设备
为了保护数据不被泄漏,我们使用软件和硬件防火墙来限制外部未经授权的访问,但是数据泄露也可能发生在内部。 为了消除这种可能性,机构会限制和监测访问互联网,同时禁用 USB 存储设备。
Debian中国
2018/12/20
10.2K0
【Android应用开发】 Android 崩溃日志 本地存储 与 远程保存
示例代码下载 : http://download.csdn.net/detail/han1202012/8638801;
韩曙亮
2023/03/27
2.2K0
【Android应用开发】 Android 崩溃日志 本地存储 与 远程保存
如何获取Android系统应用的Action
2.此处以获取安装软件应用的action为例,在文件管理器里面随便点击一个安装包(提前下载好一个apk应用),让手机处于安装界面,如下图所示:
程序员飞飞
2020/02/27
1.8K0
如何获取Android系统应用的Action
应用内容检查大法
作者:互娱iOS预审团队,隶属于互娱研发部品质管理中心,致力于互娱产品的iOS审核前的验收工作。 前面一篇分享了客户端检查的相关要点,本篇会给大家介绍有关应用内容的检查项。 苹果对庸俗、赌博、暴力、成人内容、支付等元素把控严格,如何在应用内容的检查过程中躲开苹果审核的刀锋,本篇为大家揭开这部分的审核要点。 本文按照审核的维度列出如下两个模块讲述: 1、文字内容检查 2、应用内容检查 文字内容检查 此部分的审核,腾讯预审小组重点覆盖应用中的公告、活动,游戏类的邮件、新手指引、剧情对白等界面,同时还覆盖应用中链
腾讯大讲堂
2018/02/12
1.8K0
应用内容检查大法
检查 Flutter 应用程序是否在 Web 上运行(书籍推荐)
您可以使用基础kIsWeb常量检查您的 Flutter 应用程序是否在 Web 浏览器上运行。
徐建国
2022/03/30
1.7K0
检查 Flutter 应用程序是否在 Web 上运行(书籍推荐)
点击加载更多

相似问题

如何使用composer.json从包中安装特定文件

10

composer-php安装中似乎不存在包含包。

10

Composer只安装包w/手动更新到JSON文件

11

Composer包安装命令

13

安装后,Composer从包中删除随机文件

15
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文