问题标签 [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 投票
4 回答
6599 浏览

c# - 在 C# 中同步包装异步方法

我有一个第三方库,其中包含一个异步执行功能的类。该类继承自Form。该函数基本上基于存储在数据库中的数据执行计算。完成后,它会在调用表单中调用 _Complete 事件。

我想做的是同步调用函数,但从非 Windows 窗体应用程序。问题是,无论我做什么,我的应用程序都会阻塞并且 _Complete 事件处理程序永远不会触发。从 Windows 窗体中,我可以通过使用“完成”标志和“while (!complete) application.doevents”来模拟同步运行的功能,但显然 application.doevents 在非 Windows 窗体应用程序中不可用。

有什么东西会阻止我在 Windows 窗体应用程序之外使用该类的方法(由于它继承自“Form”)?有什么办法可以解决这个问题吗?

谢谢,迈克

0 投票
1 回答
1758 浏览

silverlight - 尝试在 Silverlight 2 中使用 HttpWebRequest 时出错

我试图从异步调用写入表单。我在网上看到的示例表明这应该可以工作,但我一直收到错误消息。

首先,尽管 Disbatcher 从不调用 p 进行的调用。其次,我在调用 req.EndGetResponse(a); 时收到 System.Security.SecurityException;

什么可能导致问题?

0 投票
2 回答
1858 浏览

wcf - 将 CCR 与 A同步 WCF 服务一起使用

我正在学习如何将 CCR(并发和协调运行时)与异步 WCF Web 服务结合使用。

这是测试 WCF 服务:

它需要一个 ID 号并返回匹配的帐户名称(如果有)

我编写了一个 CCR 函数,它应该找到匹配的帐户(显然需要大量工作 - 这只是概念证明)这是我遇到的问题。

如何传回结果(全局端口?)更重要的是:如何在不阻塞线程的情况下将 CCR 插入 WCF 异步服务调用?

0 投票
2 回答
1267 浏览

c# - F# 中的异步工作流

我是一名 C# 程序员,但我对 F# 中的异步工作流有疑问。假设我在 C# 类库中有以下类:

我的理解是,我可以在 F# 中创建一个名为 ReadAllAsync 的函数,我可以像这样调用它:

并且它不会阻塞调用线程,而是将其释放到线程池中,然后在操作完成时返回另一个线程。我想我了解如何使用 Async.Primitive 在 F# 中对此进行编码,但我的问题是:我可以从 C# 代码中调用这个 ReadAllAsync 函数吗?如果是这样,我如何将 F# 代码打包到类库中以从 C# 访问?

0 投票
3 回答
346 浏览

c# - 这种模式有多糟糕?

当我需要控制各种异步操作需要多长时间时,我一直在使用这种模式。我并不是专门针对 WebRequest(我知道您可以设置 timeout 属性),我只是将此作为模式的示例。

在我读到 Thread.Sleep() 的任何地方,我都听说这是一件很糟糕的事情,但我并不认为这个用例会滥用它。

我知道它可能会超过 10 秒,但这对我来说并不重要。

那么,这真的是完成我正在完成的事情的坏方法吗?如果是,有什么更好的方法呢?

编辑:也许我应该澄清我想要完成的事情。

目的是控制等待呼叫所花费的最长时间。我知道这违背了异步调用的目的,但目的绝不是异步的,我只是将它用作控制何时退出调用的一种手段。

0 投票
4 回答
410 浏览

ruby-on-rails - 使用 Rails 让事情在特定时间发生

就像浏览器游戏一样。用户建造建筑物,并为特定日期/时间设置计时器以完成建造并生成建筑物。

我想象有一个像恶魔这样的东西,但那会如何工作呢?对我来说,旋转+轮询似乎不是要走的路。我查看了async_observer,但这适合这样的事情吗?

0 投票
2 回答
1299 浏览

f# - 使用异步工作流进行并行化的最佳实践

假设我想抓取一个网页,并提取一些数据。我很可能会写这样的东西:

告诉 F#在let!另一个线程中执行代码,然后将结果绑定到一个变量,然后继续处理。上面的示例使用了两个 let 语句:一个用于获取响应,一个用于读取所有数据,因此它至少会产生两个线程(如果我错了,请纠正我)。

尽管上面的工作流产生了几个线程,但执行顺序是连续的,因为工作流中的每个项目都依赖于前一个项目。在其他线程返回之前,实际上不可能进一步评估工作流程中的任何项目。

let!在上面的代码中拥有多个有什么好处吗?

如果不是,如何更改此代码以利用多个let!语句?

0 投票
3 回答
2545 浏览

c# - .NET Remoting - 服务器如何更新客户端?

现在,我正处于原型设计阶段。所以我才刚刚开始。

情况:服务器 - 将运行测试并将进度发布到客户端,必须是低影响的,没有网络服务器,可能运行 xp Embedded 或 xp home。

客户 - 启动测试并接收进度报告。运行xp pro。

两台机器通过以太网连接。我想使用 .NET 远程处理在两台机器之间进行通信,并且我想使用事件来使用来自服务器的新结果更新客户端,但我已经读到在这些条件下事件是不可靠的。我该怎么做?服务器可以连接到客户端并使用远程处理来发布事件吗?这行得通吗?

0 投票
5 回答
315 浏览

design-patterns - 你最喜欢的异步模式是什么?

我目前正在尝试将 CCR 作为异步编程模型。在过去,我使用了标准的开始/结束方法。我主要在 VB.net 中进行开发,并且一直在期待 Yield/Enumerator 技巧。

你最喜欢的异步模式是什么?

0 投票
2 回答
3633 浏览

java - 来自 servlet 的 Java 异步处理

我目前有一个 tomcat 容器——在其上运行的 servlet 正在侦听请求。我需要将 HTTP 请求的结果提交给作业队列,然后将其异步处理。我希望每个“作业”在数据库中连续保存,以便在发生故障时进行跟踪和恢复。我一直在做很多阅读。这是我的选择(注意我必须使用开源的东西)。

1)JMS——使用ActiveMQ(但在这种情况下,谁是工作的消费者另一个servlet?)

2)让我的请求在数据库中创建一行。在我的 Tomcat 容器中有一个单独的 servlet,它始终运行——它使用 Quartz 调度程序或 java.util.concurrent 中提供的实用程序将行作为作业连续处理(使用线程池)。

我倾向于后者,因为查看 JMS 文档让我很头疼,虽然我知道它是一个更强大的解决方案,但我需要相对快速地实现它。在任何情况下,我都没有预料到在部署此服务器的早期会有大量负载。

很多人说 Spring 可能适用于 1 或 2。但是我从未使用过 Spring,我什至不知道如何开始使用它来解决这个问题。任何关于如何深入研究而不必重新编写我的整个项目的指示都会很有用。

否则,如果您可以权衡选项 1 或 2,那也很有用。

澄清:异步过程是屏幕抓取第三方网站,并向原始请求者发送消息通知。第三方网站有点不稳定和缓慢,这就是为什么它将作为异步过程处理(内置多次重试尝试)。我还将从该站点提取文件并将它们存储在 S3 中。