gpt4 book ai didi

c# - 异步迭代器任务>

转载 作者:IT王子 更新时间:2023-10-29 04:14:24 24 4
gpt4 key购买 nike

我正在尝试实现一个返回迭代器的异步函数。思路如下:

    private async Task<IEnumerable<char>> TestAsync(string testString)
{
foreach (char c in testString.ToCharArray())
{
// do other work
yield return c;
}
}

但是,有一个错误信息说这个函数不能是一个迭代器 block ,因为Task<IEnumerable<char>>不是迭代器接口(interface)类型。有解决办法吗?

最佳答案

A more "batteries-included" implementation从 C# 8.0 开始,包括语言支持在内的此类功能现已可用。

现在,当至少将 C# 8.0(或更高版本)与 .NET Standard 2.1(或更高版本)和/或 .NET Core 3.0(或更高版本)一起使用时,原始问题的代码可以编写如下:

private async IAsyncEnumerable<char> TestAsync(string testString)
{
foreach (char c in testString.ToCharArray())
{
// do other work, which may include "await"
yield return c;
}
}

关于c# - 异步迭代器任务<IEnumerable<T>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23295119/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com