asynchronous 相关问题

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

.NET C# 异步等待。 Whenall 不等待任务

我在使用await/async/whenall 的.NET Framework 4.5 中遇到多线程问题。 我通过循环调用调用了数千个线程。 列表> t = 新列表 我在 .NET Framework 4.5 中使用 wait/async/whenall 时遇到多线程问题。 我通过循环调用调用了数千个线程。 List<Task<string>> t = new List<Task<string>>(); for (Row = 0; Row < lines.Count; Row++) { t.Add(AccessPaymentVault(Row, credentials, cts.Token)); } string[] str_list = await Task.WhenAll(t.ToArray()); AccessPaymentVault 功能用于连接金库网络服务并检索信用卡信息。 async Task<string> AccessPaymentVault(int row, Credentials credentials, CancellationToken ct){ var data = await Task.Run(() => { return Tokenization.Retrieve(credentials, lines[row][CCColumnToken]); }, ct); return Encryptor.Decrypt(data); } Tokenization.Retrieve 是最waited的功能,它连接到Web服务。 WhenAll 似乎没有等待所有任务,因为结果中的某些记录随机丢失。 当我第一次运行时,它会检索所有记录。 在第二次运行中,中间的一些记录丢失了。 在第三次运行中,第二次运行中丢失的记录存在,但其他记录丢失了。 我猜问题出在 WhenAll 但不确定。 非常感谢任何形式的帮助。 谢谢你。 现在启动新任务的建议方法是 Task.Run 而不是 Task.Factory.StartNew,除非您需要对任务进行更高级别的控制。 在您的情况下,主要问题是结果类型将是任务,导致此处出现一些嵌套。 但幸运的是有一种方法 - Task.Unwrap。 因此,如果您调用 Task.Run - 下面的 Task.Factory.StartNew 和 Task.Unwrap 会自动调用。 查看此链接: Task.Run 与 Task.Factory.StartNew 还有另一篇好文章:StartNew 很危险 评论更新 就使用 async/await 而言,一切看起来都很好。 只是一些想法: 在 Tokenization.Retrieve 中有一个共享状态,可能会因为多线程而被破坏 您可能会在 Tokenization.Retrieve 中吞下一些异常

回答 1 投票 0

Lambda返回响应后还能继续吗?

Lambda 是否可以在返回响应(例如状态代码为 202)后继续处理,然后 Lambda 必须在结束 Lambda 之前调用请求?

回答 6 投票 0

为什么我的 asyncio 任务没有在 Python 中同时运行?

我正在使用Python的asyncio模块来同时运行多个任务。但是,我的任务似乎是按顺序运行而不是同时运行,导致我的程序出现延迟。我不知道为什么会这样......

回答 1 投票 0

如何按照 guven order 进行 API 调用

无法按正确顺序拨打电话 我试图重现给定的用户场景,但未能在 k6 中重新创建正确的请求顺序。我认为这是 Promise.All 与同步调用的混合,...

回答 1 投票 0

Bloc中如何同步异步事件?

我有下一个集团: 密封类 CameraState 扩展了 Equatable { 常量 CameraState(); @覆盖 List 获取 props => []; } 最终类 CameraInitial 扩展了 CameraState {} ... 我有下一个集团: sealed class CameraState extends Equatable { const CameraState(); @override List<Object> get props => []; } final class CameraInitial extends CameraState {} final class CameraReady extends CameraState { final CameraController cameraController; const CameraReady({required this.cameraController}); @override List<Object> get props => [cameraController]; } final class CameraFailure extends CameraState { final String error; const CameraFailure({this.error = "CameraFailure"}); @override List<Object> get props => [error]; } final class CameraPermissionDenied extends CameraState {} sealed class CameraEvent {} final class CameraStopped extends CameraEvent {} final class CameraInitialized extends CameraEvent {} class CameraBloc extends Bloc<CameraEvent, CameraState> { final CameraUtils cameraUtils; final ResolutionPreset resolutionPreset; final CameraLensDirection cameraLensDirection; CameraController? _controller; CameraBloc({ required this.cameraUtils, this.resolutionPreset = ResolutionPreset.high, this.cameraLensDirection = CameraLensDirection.back, }) : super(CameraInitial()) { on<CameraInitialized>(_onCameraInitialized); on<CameraStopped>(_onCameraStopped); } Future _onCameraInitialized( CameraInitialized event, Emitter<CameraState> emit) async { try { final isGranted = await cameraUtils.requestPermission(); if (!isGranted) { emit(CameraPermissionDenied()); return; } final camera = await cameraUtils.findBestCamera(cameraLensDirection); _controller = await cameraUtils.createCameraController(camera, resolutionPreset); await _controller!.initialize(); emit(CameraReady(cameraController: _controller!)); } on CameraException catch (error) { _controller?.dispose(); emit(CameraFailure(error: error.description ?? error.toString())); } catch (error) { emit(CameraFailure(error: error.toString())); } } Future _onCameraStopped( CameraStopped event, Emitter<CameraState> emit) async { _controller?.dispose(); emit(CameraInitial()); } @override Future<void> close() { _controller?.dispose(); return super.close(); } } 问题是它包含异步事件到状态映射器,所以如果我写如下内容: bloc.add(CameraInitialized()); bloc.add(CameraStopped()); 状态会按顺序变化 CameraInitial -> CameraInitial -> CameraReady 不是 CameraInitial -> CameraReady -> CameraInitial 发生这种情况是因为_onCameraInitialized()执行需要足够长的时间并且包含await点,所以执行轮次在_onCameraStopped()称为_onCameraInitialized()之前传递给emit()。 在这种情况下是否可以同步状态顺序?我考虑了互斥体,但它看起来不是一个正确的方法。 可以使用 bloc_concurrency 和 bloc_event_transformers 包来管理事件并发。 或者,您可以通过插入每个事件->方法映射的 transformer: 参数来编写自己的解决方案。

回答 1 投票 0

如果使用for循环发送多个HTTP GET请求,为什么aiohttp仍然比requests更快?

我正在关注此页面中的代码:https://www.twilio.com/en-us/blog/asynchronous-http-requests-in-python-with-aiohttp。 这是使用 aiohttp 的第一种方法: 导入aiohttp 导入异步 我...

回答 1 投票 0

Swift 并发:“forawait”无法编译,“await”有警告

我有这段代码,它可以在 Xcode 15.4 上运行并运行,并且不会产生警告。 一般来说,这篇文章中所说的都是有效的。 private func waitForUnlockWithTimeout() 异步抛出...

回答 1 投票 0

从已完成的多处理任务中检索结果

我需要运行数十个计算密集型 CPU 密集型并行任务。目前我使用 joblib 延迟和并行来执行此操作: resultTuples = 并行(n_jobs=-1,更喜欢=“进程”)(del...

回答 1 投票 0

如何在 Angular 的异步函数中返回?

在 Angular 的异步函数中添加 if else 条件时出现错误。我需要返回以避免异步函数中的错误 异步函数:(值)=> { ...

回答 1 投票 0

异步脚本在延迟后执行

理想情况下,我希望所有脚本都以 HTML 顺序异步加载。据我所知,异步不是这样工作的。 具有以下属性,general.min.js 和 funcs.min.js

回答 1 投票 0

一起使用 asyncio 和 Tkinter(或另一个 GUI 库)而不冻结 GUI

我想将 asyncio 与 tkinter GUI 结合使用。 我是 asyncio 的新手,对它的理解不是很详细。 此处的示例在单击第一个按钮时启动 10 个任务。 ...

回答 9 投票 0

Token刷新操作在异步和批量中应该如何进行?

Token刷新操作在异步和批量中应该如何进行? 我的 Spring Boot 项目中有批处理和异步服务。由于交易需要很长时间,代币可能...

回答 1 投票 0

需要异步运行吗?

我正在尝试通过在 Google Chrome 控制台中运行 JavaScript 来自动执行任务(不确定这是否重要,我是新手)。我已经完成了大部分脚本,但还有更多问题

回答 1 投票 0

异步生成 C# 消息

我们已经开始在当前的项目中使用 Pulsar,总的来说我们很喜欢它。 不幸的是,当前的 DotPulsar(.NET 客户端)似乎不支持 .SendAsync() 调用。 这是一个H...

回答 1 投票 0

异步任务中抛出测试异常

我尝试测试这个异步方法: 公共静态异步任务 SimpleAsync() { 等待任务.延迟(10); 抛出新的异常(“应该失败。”); } 和: 断言.抛出 我尝试测试这个异步方法: public static async Task SimpleAsync() { await Task.Delay(10); throw new Exception("Should fail."); } 与: Assert.Throws<Exception>(async () => await AsyncUnderTest.SimpleAsync()); 但 NUnit 不运行: 不支持异步void方法 我应该如何在 NUnit 中测试异常? 我想知道如何在 lambda 表达式中包含 Task 返回值? 确实: Assert.ThrowsAsync<Exception>(async Task () => await AsyncUnderTest.SimpleAsync(millisecondendelay));

回答 1 投票 0

使用RxJS的interval()函数从服务器获取实时更新是否正确?

我在 Angular 应用程序中编写了这段代码,以连续地检查更新。 导出类 RealTimeComponent { 产品$:任何; 构造函数(私有服务:ProductService){} ngOnInit(){ ...

回答 1 投票 0

py-grpc-prometheus 包可以与 Python gRPC AsyncIO 版本一起使用吗?

@lidi-zheng 我们正在将现有的 Python gRPC 服务转换为 Python gRPC AsyncIO 版本 (1.43.1)。我们目前使用 py-grpc-prometheus 包来收集/发出服务器和客户端指标。 T...

回答 1 投票 0

如何在 async/await 语法中拒绝?

如何拒绝 async/await 函数返回的承诺? 例如起初: foo(id: string): Promise { 返回新的 Promise((解决, 拒绝) => { someAsyncPromise().then(...

回答 8 投票 0

asyncio.create_task() 不在 Python 3.11.3 中的后台运行函数

我创建了一个Python 3.11.3程序,它使用asyncio在后台运行异步函数。我尝试过使用 asyncio.create_task() 在后台运行该函数,但程序保持

回答 5 投票 0

顺序和异步运行 Locust 测试,无需等待响应

我想在 httpserver post API 上运行 locust 测试,其中测试应继续按顺序将请求发布到服务,而不等待待处理帖子的响应。 让我们说...

回答 1 投票 0

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.