假设我有一个保存到文件的异步方法:asyncTaskSaveToFileAsync(){varfile=awaitfolder.GetFileAsync(...)varstream=file.OpenFileAsync(...)///etc}现在假设同时调用了两次SaveToFileAsync。这是一个问题,因为您不能同时写入同一个文件如果这是一个常规方法,lock()会解决这个问题:voidSaveToFile(){lock(something){///codehere}}但是,在异步方法中不允许使用锁。当然,可以调用Monitor.Enter()或使用互斥体,但这些对象与线程一起工