问题标签 [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.
c# - 是否可以“等待收益返回 DoSomethingAsync()”
常规迭代器块(即“yield return”)是否与“async”和“await”不兼容?
这很好地了解了我正在尝试做的事情:
但是,我收到一个编译器错误,引用“无法从资源加载消息字符串”。
这是另一个尝试:
但同样,编译器返回错误:“无法从资源加载消息字符串”。
这是我项目中的真实编程代码
当我有一个列表任务时,这非常有用,该任务可以从 URL 下载 HTML,我使用语法“yield return await task”,结果就是我想要的IEnumerable<Foo>
。我不想写这段代码:
但似乎我必须这样做。
谢谢你的帮助。
c# - 转换 IQueryable 以实现 IAsyncEnumerable
我在一个方法中有一个查询:
哪个有这个单元测试:
显然调用.ToListAsync();
失败的原因是:
源 IQueryable 未实现 IAsyncEnumerable。只有实现 IAsyncEnumerable 的源才能用于实体框架异步操作。
扩展方法是来自 Entity Framework Core 的方法。
如何将我的客户列表转换为IAsyncEnumerable
?
作为参考,IEntityReader
接口定义如下:
c# - IAsyncEnumerable 在 C# 8.0 预览版中不起作用
我正在玩 C# 8.0 预览版,但无法开始IAsyncEnumerable
工作。
我尝试了以下
我最终使用了一个名为 的 Nuget 包AsyncEnumerator
,但出现以下错误:
- 错误 CS1061“
IAsyncEnumerable<int>
”不包含“”的定义,并且找不到接受第一个“”类型参数的GetAwaiter
可访问扩展方法“ ” (您是否缺少 using 指令或程序集引用?)GetAwaiter
IAsyncEnumerable<int>
- 错误 CS1624“”的主体
Program.Get()
不能是迭代器块,因为“IAsyncEnumerable<int>
”不是迭代器接口类型
我在这里想念什么?
c# - 迭代时如何突破 IAsyncEnumerable?
C# 8 添加了对异步迭代器块的支持,因此您可以等待事物并返回 anIAsyncEnumarator
而不是IEnumerable
:
使用如下所示的非阻塞消费代码:
这将导致我的代码运行大约 10 秒。await foreach
但是,有时我想在所有元素都被消耗之前突破。break
然而,我们需要等到当前等待的Task.Delay
完成。我们如何才能在不等待任何悬空异步任务的情况下立即跳出该循环?
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”上下文中的代码中使用。
项目设置不够?不再是全球性的了吗?
c# - 为什么这个 ParallelForEachAsync-Method 永远不会返回?
我尝试使用此项目中的 ParallelForEachAsync 方法异步和并行执行此代码:https ://github.com/Dasync/AsyncEnumerable 。不幸的是,该方法永远不会返回。SampleProduct 是一个简单的 DTO,它具有一个布尔属性和两个字符串属性。GetOsmData 方法尝试通过 http-request 获取数据,但经常抛出异常。
我的第一次尝试是没有 .ConfigureAwait(false),但结果相同...如果我尝试使用产品列表 (products.Count = 8) 使用此方法,结果.Count 总是停止 7。
c# - 带有 SqlDataReader 的 IAsyncEnumerable 和取消令牌在取消时挂起
我试图在 c# 8(以及 .NET Core 3 WinForm 预览版)中测试新的 IAsyncEnumerable 功能,但是当我尝试取消任务时,一切似乎都绑定了。在 while 循环上暂停调试器reader.ReadAsync
然后继续会导致一切正常运行。Thread.Sleep(0)
在 the 之前添加 awhile
有时似乎也有帮助,但并非始终如一。
我曾尝试.ConfigureAwait(false)
自由地四处寻找,看看是否有帮助,但没有。
我的代码有什么问题吗,或者 SqlClient.* 只是不能很好地使用异步枚举吗?
这段代码被称为像这样的 WinForm 按钮单击事件
因为上下文cts
是表单上的一个CancellationTokenSource
字段
c# - “ToListAsync()”和“AsAsyncEnumerable().ToList()”之间的区别
函数需要返回Task<List<Record>>
以下两个选项都是返回Task<List<Record>>
,哪个更有效?这里有什么标准方法吗?
选项1 :
选项 2:
c# - 如何使用 C#8 IAsyncEnumerable异步枚举任务并行运行
如果可能的话,我想为并行启动的任务创建一个异步枚举器。所以首先完成的是枚举的第一个元素,第二个完成的是枚举的第二个元素,依此类推。
我敢打赌,有一种使用ContinueWith
和 a的方法Queue<T>
,但我并不完全相信自己可以实现它。