试图理解C#中的async-await
,但可能陷入了一个“先有鸡还是先有蛋”的问题。
一个async
方法需要调用另一个async
方法才能变成异步吗?
作为一个高级示例,我想尝试对文件系统进行简单的写操作,但是不确定如何使此任务可等待,如果有可能的话。
public Task<FileActionStatus> SaveAsync(path, data)
{
// Do some stuff, then...
File.WriteAllBytes(path, data); // <-- Allow this to yield control?
// ... then return result
}
那行代码在我试图使方法异步的情况下被调用。因此,当文件正在被写入时,我希望将控制权交给应用程序,但不太确定该如何做。
有人能否用一个非常高级的示例来启发我,告诉我如何以async
方式向文件系统写入文件?
WriteAllBytesAsync
但你可以自己创建),最后使调用方的方法变为异步,这样就可以使用await
调用API了。 - Stephen Cleary