【发布时间】:2015-07-30 14:48:19
【问题描述】:
在获取mutex 后,如何使用await FileIO.WriteTextAsync()(在Windows Phone 8.1 中)写入文件,以确保没有两个线程访问同一个文件并确保互斥。我正在执行以下操作:
mutex.WaitOne()
try
{
await FileIO.WriteTextAsync(filename, text);
Debug.WriteLine("written");
}
finally
{
mutex.ReleaseMutex();
}
但该方法仅适用于一两次迭代,之后它会抛出一个System.Exception。另外,如果我删除await 关键字或完全删除文件写入方法,代码运行得非常好。所以,所有的麻烦都是由调用异步方法引起的。我该怎么做才能解决这个问题?
【问题讨论】:
-
如果您在同一进程中保护资源,那么Luaan's answer 应该可以完成这项工作。如果您需要保护进程之间的资源(我认为互斥锁的主要作用),请查看this question。
标签: c# windows-phone-8.1 mutex