我正在编写一个将数据传输到USB HID类设备的WinForms应用程序 . 我的应用程序使用优秀的Generic HID库v6.0,可以找到here . 简而言之,当我需要将数据写入设备时,这是被调用的代码:

private async void RequestToSendOutputReport(List byteArrays)

{

foreach (byte[] b in byteArrays)

{

while (condition)

{

// we'll typically execute this code many times until the condition is no longer met

Task t = SendOutputReportViaInterruptTransfer();

await t;

}

// read some data from device; we need to wait for this to return

RequestToGetInputReport();

}

}

当我的代码退出while循环时,我需要从设备中读取一些数据 . 但是,设备无法立即响应,因此我需要等待此呼叫返回才能继续 . 因为它目前存在,RequestToGetInputReport()声明如下:

private async void RequestToGetInputReport()

{

// lots of code prior to this

int bytesRead = await GetInputReportViaInterruptTransfer();

}

对于它的 Value ,GetInputReportViaInterruptTransfer()的声明如下所示:

internal async Task GetInputReportViaInterruptTransfer()

不幸的是,我不熟悉.NET 4.5中新的异步/等待技术的工作原理 . 我之前对await关键字进行了一些阅读,这让我觉得在RequestToGetInputReport()内部调用GetInputReportViaInterruptTransfer()会等待(也许它会这样做?)但它似乎不是对RequestToGetInputReport()的调用本身正在等待,因为我似乎几乎立即重新进入while循环?

任何人都可以澄清我所看到的行为吗?

java如何等待异步结果_如何等待异步方法完成?相关推荐

  1. java如何等待异步结果_你如何等待所有异步调用在Java中完成?

    如果我理解正确,你想要这样的东西: ExecutorService executorService = Executors.newFixedThreadPool(4); // TODO: proper ...

  2. java 同步与异步区别_同步和异步有何异同,在什么情况下分别使用它们?

    2015-05-12 06:30:01 阅读( 4 ) 通俗版:举个例子:普通B/S模式(同步)AJAX技术(异步) 同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器 ...

  3. python等待线程结束_如何等待线程完成后再继续

    我需要在另一个线程中运行一个函数,并获取该函数的返回值以将其保存到主线程中的一个变量中.基本上,我的代码调用该函数,该函数通过串行端口与天平通信,等待并获取响应,解析响应,并以浮点形式返回响应.我需要 ...

  4. java的rest异步调用_使用AsyncRestTemplate进行异步调用

    背景: 最近项目中需要并发调用c++服务的http接口,问题是同时调用两个接口时,会发生严重阻塞,导致页面响应慢,还经常遇到接收数据超时,导致RestTemplate报出ReadTimeout错误,一 ...

  5. java 8实战 异步社区_服!看完阿里大牛手写的Java异步编程实战笔记,我惊呆了...

    这份笔记涵盖了Java中常见的异步编程场景,包括单JVM内的异步编程.跨主机通过网络通信的远程过程调用的异步调用与异步处理,以及Web请求的异步处理等. 在讲解Java中每种异步编程技术时都附有案例, ...

  6. mysql等待事件类型_【等待事件】User I/O类 等待事件(2.9)--local write wait

    [等待事件]User I/O类 等待事件(2.9)--local write wait SELECTA.* FROMV$EVENT_NAME A WHERENAMEIN('local write wa ...

  7. java多线程同步异步_003JAVA多线程同步与异步方法

    003JAVA多线程同步与异步方法 发布时间:2020-04-03 09:51:20 来源:51CTO 阅读:314 作者:zjy1002261870 package com.skcc.mthread ...

  8. 同步等待 异步等待_异步/等待与承诺互操作性

    同步等待 异步等待 Usually, when discussing Promises and async/await syntax, people frame it as an "eith ...

  9. javascript等待异步线程完成_作为前端你了解JavaScript运行机制吗?

    作为前端工程师,大家都知道js是前端一开始就要学会的知识点,js的代码你会写了,那js的运行机制你了解吗?只有了解了js的运行机制,才能在工作中如鱼得水,今天就跟随珠峰的老师一起来了解下js的运行机制 ...

最新文章

  1. 设计模式学习(一) 基本理念
  2. day16_ajax学习笔记
  3. Java必须了解的“递归”与“IO流”!!!
  4. response生成图片验证码
  5. boost::mp11::mp_sort相关用法的测试程序
  6. [转]JAVA AES 加密算法
  7. Python-使用jmespath来格式化处理json数据
  8. Spark On Hive配置
  9. golang mac 环境变量_Golang (Go语言) Mac OS X下环境搭建 环境变量配置 开发工具配置 Sublime Text 2...
  10. git不小心删除文件后,如何获取?
  11. PcShare过360服务监控
  12. 为什么恢复后的文件打不开?U盘数据恢复常见问题
  13. 【面试题】网易互娱(游戏)2021校园招聘在线笔试 - 服务端开发工程师[螺旋矩阵]
  14. 红米note3照相数据丢失
  15. 停车场寻车是怎么实现的?车库寻车有什么好办法?
  16. 城市之眼视觉计算技术
  17. 2019 网易校园招聘---[小易的字典]
  18. PyTorch 深度学习实践 第13讲
  19. 奥塔在线:CentOS下使用tar包安装Tomcat85
  20. R语言中的函数10:“[“, $,@和[[]]

热门文章

  1. WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit)
  2. win 2008 64位IIS7出现数据库链接出错的解决办法
  3. Python学习之路-基础知识1
  4. ajax post 数组
  5. WPF 用Main函数方式启动程序
  6. Android 自定义AlertDialog类
  7. 通过Shell脚本快速搭建高效Rsync服务
  8. AS3.0 侦听器传参的方法
  9. 多个蓝牙缺陷可使攻击者假冒合法设备
  10. 前端:高德地图快速入门使用