相关疑难解决方法(0)

如何使用 C#8 IAsyncEnumerable<T> 异步枚举并行运行的任务

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

public static async IAsyncEnumerable<T> ParallelEnumerateAsync(this IEnumerable<Task<T>> coldAsyncTasks)
{
    // ... 
}
Run Code Online (Sandbox Code Playgroud)

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

c# asynchronous task-parallel-library async-await iasyncenumerable

8
推荐指数
2
解决办法
5847
查看次数

你在那里,异步写入值?

最近几天我一直在阅读有关 async/await 的内容。昨天我在第 9 频道上发现了这个视频,让我对某些事情感到惊奇。请考虑下面的幻灯片。

任务中的变量分配

除了 Lucian Wischik 解决的问题之外,我还想知道变量赋值。假设我们更改了async voidinto async Task,并awaitSendData调用之前添加。这使我们能够获取流,分配变量m_GetResponse,等待两秒钟并打印它。但是变量会发生什么?它可以由与读取不同的线程写入。我们是否需要某种内存屏障,使变量变得易失,或者其他什么?当我们打印它时它仍然为空吗?

c# asynchronous thread-safety async-await

7
推荐指数
1
解决办法
389
查看次数