vij*_*053 2 c# multithreading synchronization asynchronous task-parallel-library
我正在开发一款Windows Phone 8应用程序.我必须将视频保存到相机胶卷文件夹中.
要获取相机胶卷文件夹的文件流,我使用以下功能:
[CLSCompliantAttribute(false)]
public static Task<Stream> OpenStreamForWriteAsync(
this IStorageFile windowsRuntimeFile
)
Run Code Online (Sandbox Code Playgroud)
例如:
Stream videoStream = await file.OpenStreamForWriteAsync();
Run Code Online (Sandbox Code Playgroud)
文件是StorageFile.
我想删除这个await并使函数同步因为要求.
编辑:
PS:我在不同的线程上执行此函数,我希望该线程是同步的.我想在创建后写入该文件流.
只需访问Result:
Stream videoStream = file.OpenStreamForWriteAsync().Result;
Run Code Online (Sandbox Code Playgroud)
这将阻止,直到任务完成执行.
请注意,如果在UI线程上执行该代码,则可能导致程序死锁.有关详细信息,
请参阅此博客文章.