asynchronous 相关问题

异步编程是用于推迟具有高延迟或低优先级的操作的策略,通常旨在提高软件的性能,响应性和/或可组合性。这些策略通常使用事件驱动编程和回调的某种组合来使用,并且可选地通过协同程序和/或线程来使用并发。

Task.WhenAll 与 Parallel.ForEachAsync - 哪种方法最好,为什么?

我正在尝试了解.NET 中的线程和任务并行库。因此,我正在尝试使用两种方法同时运行任务,如下所示 - 一些背景—— ...

回答 2 投票 0

如何清理/清除BackgroundService(Microsoft.Hosting.Extensions.BackgroundService)中的AsyncLocal<T>对象?

我有一个后台服务,可以在长时间运行的线程上执行一些任务和作业。为简单起见,我们将其视为进行异步 SQL 调用并重复的调度程序。现在我使用 AsyncL...

回答 1 投票 0

有没有办法创建带有延迟的异步任务,包含 Strapi 对象作为依赖项?

到达端点后,我想在定义的过期时间后执行服务。 这意味着我需要使用 Strapi 实例。 有没有办法像 CRON 作业一样创建,但是

回答 1 投票 0

如何从Promise返回SOAP中的数据

我在 Node.js 中创建了一个 SOAP 服务器 const soap = require('soap'); const http = require('http'); 常量服务 = { ImpDispatcherService:{ ImpDispatcher:{ 执行测试:函数(...

回答 1 投票 0

为什么我的 SUPABASE 实时监听器偶尔会错过某个事件?

我的 iOS 项目中有多个实时侦听器,它们应该实时侦听来自 supabase 的事件。我正在使用当前的 realtimeV2,但有时似乎无缘无故...

回答 1 投票 0

生成的期货结构是怎样的?

我刚刚从这篇博文中了解到我们可以使用 #[rustc_layout(debug)] 转储类型布局。我立即尝试用它来看穿生成的期货。 这是一个例子:(Rust Playground)...

回答 1 投票 0

CompletableFuture.allof() 获取空指针异常

我的结构类似于下面的代码块。不知何故,我在 CompletableFuture.allOf 方法中得到 nullpointerException: 这里可能有什么问题? 谢谢.. 列表 我的结构类似于下面的代码块。不知何故,我在 CompletableFuture.allOf 方法中得到 nullpointerException: 这里可能有什么问题? 谢谢.. List<CompletableFuture<String>> completableFutures = new ArrayList<>(); for(Classx list : request.getlist()) { switch (list.getCases()) { case 1: completableFutures.add(asyncProcess(list)); break; case 2: completableFutures.add(asyncProcess2(list)); break; } } CompletableFuture<Void> allFutures = CompletableFuture.allOf(completableFutures.toArray(new CompletableFuture[0])); @Async public CompletableFuture<String> asyncProcess(Classx list) { try{ //..some codes } catch(Exception e){ //..some codes } return CompletableFuture.completedFuture(x.getX()); } @Async public CompletableFuture<String> asyncProcess2(Classx list) { try{ //..some codes } catch(Exception e){ //..some codes } return CompletableFuture.completedFuture(x.getX()); } 错误信息是: java.lang.NullPointerException at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1306) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1303) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1305) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1305) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1303) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1305) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1303) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1305) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1305) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1303) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1303) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1303) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1303) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1305) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1303) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1303) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1305) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1303) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1303) at java.util.concurrent.CompletableFuture.allOf(CompletableFuture.java:2225) 当我按如下方式更改代码时,它会引发相同的错误。 CompletableFuture allFutures = CompletableFuture.allOf(completableFutures.toArray(new CompletableFuture[completableFuture.size()])); 查看CompletableFutre.andTree的源代码,似乎当传入数组的元素为null时抛出此异常。在您的 return 函数之一中必须有一些额外的 asyncProcees 语句可以返回 null。

回答 1 投票 0

从异步函数返回常规生成器

如何从异步函数返回常规(非异步)生成器? 异步 def foo(): list = wait stuff() # 昂贵的 io 绑定到这里并完成。 对于列表中的我: 产量 i, i*2 对于 ... 中的 i、j

回答 1 投票 0

不同数据类型的Python成员变量在具有相同优先级的不同线程中未得到更新

考虑以下示例代码: 类测试: def __init__(self) -> 无: self.bool = False self.字符串=“” 线程 = 线程(目标 = self.target) 线程.s...

回答 1 投票 0

如何防止Spring Boot中的@Async方法参数中的数组被清除?

我遇到了 @Async 方法注释的某种线程问题。正在处理从 csv 到 DB 的数据,对于每 10000 条记录,将这些记录传递给另一个用 @Async 注释的方法。 ...

回答 1 投票 0

为什么我们对阻塞线程如此警惕?

自从我开始编程以来,我总是一致认为线程阻塞是不好的——有些操作本质上是异步的,我们应该创建尊重的代码

回答 1 投票 0

Promise.all() 永远无法解决

我有一个应该异步获取一些数据的函数。 获取页面事件(){ const Promise = this.calendarPage.days.map(day => { 返回 this.dataService.getEventsByDay(day) ...

回答 1 投票 0

Riverpod:在其他提供商内调用异步 Riverpod

我在我的项目中使用 Riverpod,在我的一个提供程序中我想调用另一个异步提供程序,所以这是我的代码: @riverpod 类 SelectedUser 扩展 _$SelectedUser { @覆盖 列表<

回答 1 投票 0

无法使用 pytest 运行 aiohttp 测试用例

我正在尝试在我的 aiohttp 应用程序上运行 pytest。 我添加了一个“pytest.ini”配置文件。 但每当我运行 pytest 时,它只会给我一个错误。它永远不符合我的测试文件。 我的同事...

回答 1 投票 0

如果我显式返回 Promise,我应该定义异步函数吗?

我们知道异步函数隐式返回 Promise。但我有一个纯粹迂腐的问题。如果我显式返回 Promise,是否应该添加 async 关键字? 这是: const wait = 异步 ms =>...

回答 2 投票 0

处理后台作业中的数据库调用失败

我有以下工作流程: UI 进行 API 调用来删除资源。此删除操作非常耗时,需要进行大量外部调用。所以实际的删除是作为异步/后台运行的

回答 1 投票 0

异步等待和事件处理程序

是否可以将通常的事件处理程序从 void 转换为基于任务,并像下面这样等待它? Something.PropertyChanged += async (o, args) => 等待 IsButtonVisible_PropertyChanged(o, args);

回答 3 投票 0

在 Kotlin 中访问 CoroutinScope 中更新的变量

我已经全局声明了变量并更新了coroutinScope内的值。当我调用 coroutinScope 之外的值时,它的值不会更新。我如何访问内部更新的值

回答 1 投票 0

使用 DartZ 调用多个 Future 时如何避免嵌套折叠?

我有一段代码,如下所示: 最终 Either resA =等待deleteA(); resA.fold( (失败)=>处理失败(), (成功)异步{ 最后要么 我有一段代码,如下所示: final Either<Failure, Unit> resA = await deleteA(); resA.fold( (failure) => handleFailure(), (success) async { final Either<Failure, Unit> resB = await deleteB(); resB.fold( (failure) => handleFailure(), (success) => handleSuccess(), ); }, ); 基本上,我想调用第一个函数,它返回失败或单位(成功值并不重要)。 然后,如果第一个函数成功,我想调用另一个函数,它也返回 Future 或 Unit。 我该如何避免在另一个 fold 中进行 fold 的丑陋嵌套调用? 我正在使用包 dartz,这真的很酷,但缺乏文档。 这个问题好像已经两年没有答案了,最近我对Dart中的函数式编程产生了兴趣,在这里我尝试回答一下。 您可以使用 traverseFuture 继续下一个异步过程,使用 then 链接未来,并使用 bind 绑定结果。最后,折叠结果。这是代码: final Either<Failure, Unit> resA = await deleteA(); resA .traverseFuture((w) => deleteB()) .then((x) => x.bind((y) => y)) .then((z) => z.fold( (l) => handleFailure(l.msg), (r) => handleSuccess(), )); 上面的代码还可以再简化一下。您可以直接调用并链接 deleteA(),而不将其存储到变量中,将 bind 和 fold 链接在一行中,并将 bind((y) => y) 更改为 bind(id) (id 表示来自 dartz 包 f(x) = x 的身份) )。 这是简化的代码: deleteA() .then((resA) => resA.traverseFuture((w) => deleteB())) .then((x) => x.bind(id).fold( (l) => handleFailure(l.msg), (r) => handleSuccess(), )); 没有 ifs 语句,没有嵌套折叠,只有一个链接函数语句 ✨ 结果呢?错误处理怎么样?结果与之前对双折所做的结果保持不变,上面的代码(单折)使用了面向铁路的编程原理(ROP),如下所示 所以如果deleteA失败,deleteB将不会被执行。 这是错误处理演示和结果输出: 希望能解决您的问题,谢谢😉

回答 1 投票 0

在 C# async/await 中,延迟长度会影响控制权何时返回调用者吗?

以下代码按预期工作 - 两个服务同时启动。 List services = [ new Service(), new Service() ]; foreach(服务中的服务) { 任务任务 =

回答 1 投票 0

© www.soinside.com 2019 - 2025. All rights reserved.