如何使异步函数(如OpenStreamForWriteAsync)同步

本文关键字:同步 OpenStreamForWriteAsync 函数 何使 异步 | 更新日期: 2023-09-27 17:57:38

我正在开发一款windows phone 8应用程序。我必须将视频保存到相机胶卷文件夹中。

为了获得相机胶卷文件夹的文件流,我使用以下功能:

[CLSCompliantAttribute(false)]
public static Task<Stream> OpenStreamForWriteAsync(
    this IStorageFile windowsRuntimeFile
)

例如:

Stream videoStream = await file.OpenStreamForWriteAsync();

其中file是StorageFile。

由于需要,我想删除这个等待并使函数同步。

编辑:
PS:我在不同的线程上执行这个函数,我希望那个线程是同步的。我想在文件流创建后在它上面写。

如何使异步函数(如OpenStreamForWriteAsync)同步

只需访问Result:

Stream videoStream = file.OpenStreamForWriteAsync().Result;

这将被阻止,直到任务完成执行
请注意,如果代码在UI线程上执行,这可能会导致程序死锁
有关更多信息,请参阅此博客文章。