问题标签 [iasyncenumerable]

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 投票
9 回答
82274 浏览

c# - 是否可以“等待收益返回 DoSomethingAsync()”

常规迭代器块(即“yield return”)是否与“async”和“await”不兼容?

这很好地了解了我正在尝试做的事情:

但是,我收到一个编译器错误,引用“无法从资源加载消息字符串”。

这是另一个尝试:

但同样,编译器返回错误:“无法从资源加载消息字符串”。


这是我项目中的真实编程代码

当我有一个列表任务时,这非常有用,该任务可以从 URL 下载 HTML,我使用语法“yield return await task”,结果就是我想要的IEnumerable<Foo>。我不想写这段代码:

但似乎我必须这样做。

谢谢你的帮助。

0 投票
1 回答
14722 浏览

c# - 转换 IQueryable 以实现 IAsyncEnumerable

我在一个方法中有一个查询:

哪个有这个单元测试:

显然调用.ToListAsync();失败的原因是:

源 IQueryable 未实现 IAsyncEnumerable。只有实现 IAsyncEnumerable 的源才能用于实体框架异步操作。

扩展方法是来自 Entity Framework Core 的方法。

如何将我的客户列表转换为IAsyncEnumerable

作为参考,IEntityReader接口定义如下:

0 投票
2 回答
9740 浏览

c# - IAsyncEnumerable 在 C# 8.0 预览版中不起作用

我正在玩 C# 8.0 预览版,但无法开始IAsyncEnumerable工作。

我尝试了以下

我最终使用了一个名为 的 Nuget 包AsyncEnumerator,但出现以下错误:

  1. 错误 CS1061“ IAsyncEnumerable<int>”不包含“”的定义,并且找不到接受第一个“”类型参数的GetAwaiter可访问扩展方法“ ” (您是否缺少 using 指令或程序集引用?)GetAwaiterIAsyncEnumerable<int>
  2. 错误 CS1624“”的主体Program.Get()不能是迭代器块,因为“ IAsyncEnumerable<int>”不是迭代器接口类型

我在这里想念什么?

0 投票
1 回答
2628 浏览

c# - 迭代时如何突破 IAsyncEnumerable?

C# 8 添加了对异步迭代器块的支持,因此您可以等待事物并返回 anIAsyncEnumarator而不是IEnumerable

使用如下所示的非阻塞消费代码:

这将导致我的代码运行大约 10 秒。await foreach但是,有时我想在所有元素都被消耗之前突破。break然而,我们需要等到当前等待的Task.Delay完成。我们如何才能在不等待任何悬空异步任务的情况下立即跳出该循环?

0 投票
3 回答
2482 浏览

c# - IAsyncEnumerable<> 在 VS 2019 预览版 2(Core 3.0 预览版 1)中损坏

安装 VS 2019 preview 2 后,我收到大量错误。错误演示代码:

仅此而已(一个新的 dll 项目)!
预览 1 没问题。

该项目:

错误消息是: 错误 CS0656 Missing compiler required member 'System.Collections.Generic.IAsyncEnumerable`1.GetAsyncEnumerator'

对象浏览器显示 Collections.Generic 中的成员。

有任何想法吗?等待 Core 3.0 预览版 2?

IAsyncEnumerable 之类的东西在 C# 8.0 预览版中不起作用

VS 2019 P2(另一个项目)的另一个问题:尽管 NullableReferenceTypes 行存在 Nullabilty 警告(在 vs 19 中,预览 1 还可以):

警告:
警告 CS8632 可空引用类型的注释只能在“#nullable”上下文中的代码中使用。
项目设置不够?不再是全球性的了吗?

0 投票
4 回答
1784 浏览

c# - C# 8.0 是否支持 IAsyncEnumerable?

IAsyncEnumerable除了“What's New c# 8.0”文章中提到的一些信息之外,真的很难找到关于 . 尝试在启用了 netstandard 2.0 和 C# 8 的 Visual Studio 2019 中使用它,它确实可以识别该类,但我在构建时遇到大量错误:

在此处输入图像描述

0 投票
1 回答
1669 浏览

c# - 为什么这个 ParallelForEachAsync-Method 永远不会返回?

我尝试使用此项目中的 ParallelForEachAsync 方法异步和并行执行此代码:https ://github.com/Dasync/AsyncEnumerable 。不幸的是,该方法永远不会返回。SampleProduct 是一个简单的 DTO,它具有一个布尔属性和两个字符串属性。GetOsmData 方法尝试通过 http-request 获取数据,但经常抛出异常。

我的第一次尝试是没有 .ConfigureAwait(false),但结果相同...如果我尝试使用产品列表 (products.Count = 8) 使用此方法,结果.Count 总是停止 7。

0 投票
0 回答
518 浏览

c# - 带有 SqlDataReader 的 IAsyncEnumerable 和取消令牌在取消时挂起

我试图在 c# 8(以及 .NET Core 3 WinForm 预览版)中测试新的 IAsyncEnumerable 功能,但是当我尝试取消任务时,一切似乎都绑定了。在 while 循环上暂停调试器reader.ReadAsync然后继续会导致一切正常运行。Thread.Sleep(0)在 the 之前添加 awhile有时似乎也有帮助,但并非始终如一。

我曾尝试.ConfigureAwait(false)自由地四处寻找,看看是否有帮助,但没有。

我的代码有什么问题吗,或者 SqlClient.* 只是不能很好地使用异步枚举吗?

这段代码被称为像这样的 WinForm 按钮单击事件

因为上下文cts是表单上的一个CancellationTokenSource字段

0 投票
2 回答
8871 浏览

c# - “ToListAsync()”和“AsAsyncEnumerable().ToList()”之间的区别

函数需要返回Task<List<Record>> 以下两个选项都是返回Task<List<Record>>,哪个更有效?这里有什么标准方法吗?

选项1 :

选项 2:

0 投票
4 回答
7151 浏览

c# - 如何使用 C#8 IAsyncEnumerable异步枚举任务并行运行

如果可能的话,我想为并行启动的任务创建一个异步枚举器。所以首先完成的是枚举的第一个元素,第二个完成的是枚举的第二个元素,依此类推。

我敢打赌,有一种使用ContinueWith和 a的方法Queue<T>,但我并不完全相信自己可以实现它。