问题标签 [asynchronous]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1055 浏览

asynchronous - 实现执行异步操作的自定义 Windows 工作流活动

我在弄清楚如何最好地实现这一点时遇到了一些概念上的麻烦……我想为 Windows 工作流创建一个自定义 Activity 类。该活动必须调用第三方库方法,该方法本身异步运行另一个进程,并且可能需要几秒钟到几小时才能完成。这个库为我提供了轮询方法结果或订阅指示其完成的事件的能力。在我的非工作流程应用程序中,我通常只订阅该事件,但在工作流程案例中这似乎不合理。我也不确定如何最好地实施轮询方案。有人可以推荐一些类似问题的指针吗?

0 投票
10 回答
6281 浏览

delphi - 在 Delphi 中进行异步套接字编程的惯用方法是什么?

人们在 Delphi 中编写网络代码使用 Windows 风格的重叠异步套接字 I/O 的正常方式是什么?

这是我之前对这个问题的研究:

Indy组件似乎完全同步。另一方面,虽然 ScktComp 单元确实使用 WSAAsyncSelect,但它基本上只异步 BSD 风格的多路复用套接字应用程序。您在单个事件回调中被转储,就好像您刚刚从 select() 循环中返回一样,并且必须自己完成所有状态机导航。

.NET 的情况要好得多,使用 Socket.BeginRead / Socket.EndRead,其中的延续直接传递给 Socket.BeginRead,这就是您选择备份的地方。编码为闭包的延续显然具有您需要的所有上下文,甚至更多。

0 投票
8 回答
12733 浏览

c++ - 异步 Mysql 连接器

是否存在可在 C 或 C++ 应用程序中使用的 Mysql 异步连接器?我正在寻找可以插入用Boost.Asio编写的反应器模式的东西。

[编辑:] 在线程中运行同步连接器不是一种选择。

0 投票
3 回答
6670 浏览

apache-flex - 在 ActionScript 3 / Flex / AIR 中实现 1:1 异步回调/事件的最佳方式?

我一直在我的 Flex 项目中使用命令模式,需要异步回调路由:

  • 实例化给定命令对象和命令对象的人,
  • 命令对象和命令对象调用的“数据访问”对象(即通过网络处理对服务器的远程过程调用的人)。

这两个回调路由中的每一个都必须能够是一对一的关系。这是因为我可能有几个给定命令类的实例同时运行完全相同的作业,但参数略有不同,我不希望它们的回调混淆。因此,使用事件(AS3 中处理异步的默认方式)几乎已被淘汰,因为它们本质上是基于一对多关系的。

目前我已经使用具有特定类型签名的回调函数引用来完成此操作,但我想知道是否有人知道更好(或替代)的方法?

这是一个示例来说明我当前的方法:

  • 我可能有一个视图对象,该对象由于某些用户操作而产生一个DeleteObjectCommand实例,将引用传递给它自己的两个私有成员函数(一个代表成功,一个代表失败:假设在这个例子"deleteObjectSuccessHandler()""deleteObjectFailureHandler()")作为对命令类的回调函数引用构造函数。
  • 然后命令对象将重复此模式,并连接到“数据访问”对象。
  • 当网络上的 RPC 成功完成(或失败)时,会调用相应的回调函数,首先是“数据访问”对象,然后是命令对象,以便最终实例化操作的视图对象在第一个地点通过其deleteObjectSuccessHandler()或被deleteObjectFailureHandler()调用而得到通知。
0 投票
5 回答
2385 浏览

c - 异步 API

在尝试实现异步 API 调用/非阻塞调用时,我在我拥有的 All Plain-C 应用程序中了解一点,我读了一篇关于“代表”的 APM(异步编程模型)的文章。基本上我想做的是调用一个 APIf1()来做一个功能(这需要很长时间 8-10 秒),所以我调用那个 API f1(),忘记它,并继续做一些其他的工作,例如 I/O 来获取数据对于f1()不依赖于结果的 或某些功能的下一次调用f1()

如果有人使用过 APM 编程模型,我正在寻找一些关于实现非阻塞调用的简明解释。

是否有任何其他方式来实现异步 API,任何其他可能对此有所帮助的库/框架?

0 投票
2 回答
9229 浏览

c# - 我怎么知道最后一个 OutputDataReceived 何时到达?

我在针对 .Net 框架 3.5 的程序中有一个 System.Diagnostics.Process 对象

我已经重定向了StandardOutputStandardError管道,并且我正在异步接收来自它们的数据。我还为 Exited 事件设置了一个事件处理程序。

一旦我打电话Process.Start(),我就想在等待事件发生时离开并做其他工作。

不幸的是,对于返回大量信息的进程,Exited 事件似乎在最后一个OutputDataReceived事件之前被触发。

我怎么知道最后一次OutputDataReceived收到是什么时候?理想情况下,我希望该Exited事件是我收到的最后一个事件。

这是一个示例程序:

运行此程序时,您会注意到“Exited (Event)”出现在输出中一个完全可变的位置。您可能需要运行它几次,显然,您需要将“output.exe”替换为您选择的能够产生适当大量输出的程序。

所以,问题又来了:我怎么知道最后一个OutputDataReceived收到的时间?理想情况下,我希望该Exited事件是我收到的最后一个事件。

0 投票
1 回答
8889 浏览

python - Python Twisted 中的异步编程

我在 Twisted 中开发反向代理时遇到了麻烦。它有效,但似乎过于复杂和令人费解。很多感觉就像巫毒教一样。

网络上或书中是否有任何简单、可靠的异步程序结构示例?一种最佳实践指南?当我完成我的程序时,我希望仍然能够以某种方式看到结构,而不是看着一碗意大利面。

0 投票
5 回答
14812 浏览

c# - 在 C# 中使事件异步的最佳方法

事件在 C# 中是同步的。我有这个应用程序,我的主窗体启动一个线程,其中有一个循环来监听流。当流中出现某个事件时,会从循环向主窗体触发一个事件。

如果主窗体很慢或显示消息框或其他内容,则循环将被暂停。解决这个问题的最佳方法是什么?通过在主窗体上使用回调和调用?

0 投票
3 回答
6073 浏览

asynchronous - ASP.NET 2.0 中的 SmtpClient.SendAsync 错误

我可能错了,但是如果您在 ASP.NET 2.0 中使用 SmtpClient.SendAsync 并且它引发异常,则处理请求的线程会无限期地等待操作完成。

要重现此问题,只需为发送电子邮件时无法解析的主机使用无效的 SMTP 地址。

请注意,您应该设置 Page.Async = true 以使用 SendAsync。

如果 Page.Async 设置为 false 并且 Send 抛出异常,线程不会阻塞,并且页面被正确处理。

TIA。

0 投票
3 回答
6595 浏览

asp.net-ajax - AJAX - 如何将值传递回服务器

第一次在 .NET 中使用 UpdatePanels。

我有一个带有指向 FormView 控件上的事件的触发器的更新面板。UpdatePanel 拥有一个 ListView,其中包含来自单独数据库的相关数据。

当 UpdatePanel 刷新时,它需要来自 FormView 控件的值,以便在服务器上它可以使用它们来查询数据库。

对于我的生活,我无法弄清楚如何获得这些价值观。我触发的事件有它们,但我希望更新面板异步刷新。如何将值传递给面板上的加载事件?

谷歌搜索了这个令人作呕的广告,似乎无法在这里找到答案。链接或解释将非常有帮助..

杰夫