问题标签 [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.
asynchronous - 实现执行异步操作的自定义 Windows 工作流活动
我在弄清楚如何最好地实现这一点时遇到了一些概念上的麻烦……我想为 Windows 工作流创建一个自定义 Activity 类。该活动必须调用第三方库方法,该方法本身异步运行另一个进程,并且可能需要几秒钟到几小时才能完成。这个库为我提供了轮询方法结果或订阅指示其完成的事件的能力。在我的非工作流程应用程序中,我通常只订阅该事件,但在工作流程案例中这似乎不合理。我也不确定如何最好地实施轮询方案。有人可以推荐一些类似问题的指针吗?
delphi - 在 Delphi 中进行异步套接字编程的惯用方法是什么?
人们在 Delphi 中编写网络代码使用 Windows 风格的重叠异步套接字 I/O 的正常方式是什么?
这是我之前对这个问题的研究:
Indy组件似乎完全同步。另一方面,虽然 ScktComp 单元确实使用 WSAAsyncSelect,但它基本上只异步 BSD 风格的多路复用套接字应用程序。您在单个事件回调中被转储,就好像您刚刚从 select() 循环中返回一样,并且必须自己完成所有状态机导航。
.NET 的情况要好得多,使用 Socket.BeginRead / Socket.EndRead,其中的延续直接传递给 Socket.BeginRead,这就是您选择备份的地方。编码为闭包的延续显然具有您需要的所有上下文,甚至更多。
c++ - 异步 Mysql 连接器
是否存在可在 C 或 C++ 应用程序中使用的 Mysql 异步连接器?我正在寻找可以插入用Boost.Asio编写的反应器模式的东西。
[编辑:] 在线程中运行同步连接器不是一种选择。
apache-flex - 在 ActionScript 3 / Flex / AIR 中实现 1:1 异步回调/事件的最佳方式?
我一直在我的 Flex 项目中使用命令模式,需要异步回调路由:
- 实例化给定命令对象和命令对象的人,
- 命令对象和命令对象调用的“数据访问”对象(即通过网络处理对服务器的远程过程调用的人)。
这两个回调路由中的每一个都必须能够是一对一的关系。这是因为我可能有几个给定命令类的实例同时运行完全相同的作业,但参数略有不同,我不希望它们的回调混淆。因此,使用事件(AS3 中处理异步的默认方式)几乎已被淘汰,因为它们本质上是基于一对多关系的。
目前我已经使用具有特定类型签名的回调函数引用来完成此操作,但我想知道是否有人知道更好(或替代)的方法?
这是一个示例来说明我当前的方法:
- 我可能有一个视图对象,该对象由于某些用户操作而产生一个
DeleteObjectCommand
实例,将引用传递给它自己的两个私有成员函数(一个代表成功,一个代表失败:假设在这个例子"deleteObjectSuccessHandler()"
中"deleteObjectFailureHandler()"
)作为对命令类的回调函数引用构造函数。 - 然后命令对象将重复此模式,并连接到“数据访问”对象。
- 当网络上的 RPC 成功完成(或失败)时,会调用相应的回调函数,首先是“数据访问”对象,然后是命令对象,以便最终实例化操作的视图对象在第一个地点通过其
deleteObjectSuccessHandler()
或被deleteObjectFailureHandler()
调用而得到通知。
c - 异步 API
在尝试实现异步 API 调用/非阻塞调用时,我在我拥有的 All Plain-C 应用程序中了解一点,我读了一篇关于“代表”的 APM(异步编程模型)的文章。基本上我想做的是调用一个 APIf1()
来做一个功能(这需要很长时间 8-10 秒),所以我调用那个 API f1()
,忘记它,并继续做一些其他的工作,例如 I/O 来获取数据对于f1()
不依赖于结果的 或某些功能的下一次调用f1()
。
如果有人使用过 APM 编程模型,我正在寻找一些关于实现非阻塞调用的简明解释。
是否有任何其他方式来实现异步 API,任何其他可能对此有所帮助的库/框架?
c# - 我怎么知道最后一个 OutputDataReceived 何时到达?
我在针对 .Net 框架 3.5 的程序中有一个 System.Diagnostics.Process 对象
我已经重定向了StandardOutput
和StandardError
管道,并且我正在异步接收来自它们的数据。我还为 Exited 事件设置了一个事件处理程序。
一旦我打电话Process.Start()
,我就想在等待事件发生时离开并做其他工作。
不幸的是,对于返回大量信息的进程,Exited 事件似乎在最后一个OutputDataReceived
事件之前被触发。
我怎么知道最后一次OutputDataReceived
收到是什么时候?理想情况下,我希望该Exited
事件是我收到的最后一个事件。
这是一个示例程序:
运行此程序时,您会注意到“Exited (Event)”出现在输出中一个完全可变的位置。您可能需要运行它几次,显然,您需要将“output.exe”替换为您选择的能够产生适当大量输出的程序。
所以,问题又来了:我怎么知道最后一个OutputDataReceived
收到的时间?理想情况下,我希望该Exited
事件是我收到的最后一个事件。
python - Python Twisted 中的异步编程
我在 Twisted 中开发反向代理时遇到了麻烦。它有效,但似乎过于复杂和令人费解。很多感觉就像巫毒教一样。
网络上或书中是否有任何简单、可靠的异步程序结构示例?一种最佳实践指南?当我完成我的程序时,我希望仍然能够以某种方式看到结构,而不是看着一碗意大利面。
c# - 在 C# 中使事件异步的最佳方法
事件在 C# 中是同步的。我有这个应用程序,我的主窗体启动一个线程,其中有一个循环来监听流。当流中出现某个事件时,会从循环向主窗体触发一个事件。
如果主窗体很慢或显示消息框或其他内容,则循环将被暂停。解决这个问题的最佳方法是什么?通过在主窗体上使用回调和调用?
asynchronous - ASP.NET 2.0 中的 SmtpClient.SendAsync 错误
我可能错了,但是如果您在 ASP.NET 2.0 中使用 SmtpClient.SendAsync 并且它引发异常,则处理请求的线程会无限期地等待操作完成。
要重现此问题,只需为发送电子邮件时无法解析的主机使用无效的 SMTP 地址。
请注意,您应该设置 Page.Async = true 以使用 SendAsync。
如果 Page.Async 设置为 false 并且 Send 抛出异常,线程不会阻塞,并且页面被正确处理。
TIA。
asp.net-ajax - AJAX - 如何将值传递回服务器
第一次在 .NET 中使用 UpdatePanels。
我有一个带有指向 FormView 控件上的事件的触发器的更新面板。UpdatePanel 拥有一个 ListView,其中包含来自单独数据库的相关数据。
当 UpdatePanel 刷新时,它需要来自 FormView 控件的值,以便在服务器上它可以使用它们来查询数据库。
对于我的生活,我无法弄清楚如何获得这些价值观。我触发的事件有它们,但我希望更新面板异步刷新。如何将值传递给面板上的加载事件?
谷歌搜索了这个令人作呕的广告,似乎无法在这里找到答案。链接或解释将非常有帮助..
杰夫