2013-07-11 51 views
1
public async void SaveQueue() 
{ 
     _filedata = JsonConvert.SerializeObject(Queue); 
     StorageFile sessionFile = await ApplicationData.Current.LocalFolder.CreateFileAsync("Queue.txt", CreationCollisionOption.ReplaceExisting); 
     await FileIO.WriteTextAsync(sessionFile, _filedata); 
} 

所以首先我序列化隊列,然後試圖將其保存到一個名爲Queue.txt文件。隨着CreateFileAsync/WriteTextASync,如何確定該文件已在使用

但是,如果我非常快速地對SaveQueue()進行多次調用,我會得到一個「文件正在使用」異常。有沒有一種方法可以檢查文件當前是否正在寫入?

謝謝!

+1

即使有,它也不會對你有任何好處。因爲當你開始真正想寫的時候,其他一些線程可能會抓住它。請參閱我的博客文章[File.Exists只是一個快照](http://blog.mischel.com/2013/06/27/file-exists-is-only-a-snapshot/)作進一步解釋。 –

回答

1

目前還沒有一種方法可以在WinRT中進行檢查。解決方法是將這些行包裝在try/catch中的catch子句中,對「正在使用的文件」進行處理。

相關問題