我试图写一个文件,但“偶尔”我碰上,我认为是到并发问题,因为有些时候,我得到一个System.UnauthorizedAccessException
与消息:
访问被拒绝。 (从HRESULT异常:0X80070005(E_ACCESSDENIED))
......从以下几点:
public async void SubmitChanges()
{
DataContractSerializer serializer =
new DataContractSerializer(typeof(LocalCache<T>));
StorageFile file = await ApplicationData.Current.LocalFolder
.CreateFileAsync(GetFileNameForType(),
CreationCollisionOption.ReplaceExisting);
//Occasionally throws here
using (var fi = await file.OpenTransactedWriteAsync())
{
serializer.WriteObject(fi.Stream.AsStreamForWrite(), this);
await fi.CommitAsync();
}
}
我只能认为这是到一些并发性,或者是仍然开放读别的地方,但我似乎无法找到一个方法来等待它变得可用-我通常lock
在其周围,但这不与允许await
因此什么其他选择?