最近几天我一直在学习关于异步/等待(async/await)的内容。昨天我在 Channel 9 上发现了这个视频,让我对一些问题产生了疑问。请看下面的幻灯片。
除了 Lucian Wischik 提到的问题之外,我还想知道变量赋值的情况。假设我们将
除了 Lucian Wischik 提到的问题之外,我还想知道变量赋值的情况。假设我们将
async void
改为 async Task
,并在 SendData
调用之前添加 await
。这样我们就可以获取流,分配变量 m_GetResponse
,等待两秒钟并打印它。但是这个变量会发生什么?它可能被与读取它的线程不同的线程写入。我们需要在这里使用某种内存屏障、使变量成为 volatile,或者其他什么方法吗?当我们打印它时,它仍然可能为空吗?
async-await
对并发性没有任何影响。这是一个完全不同的问题。 - Paulo Morgado