Windows phone 7 隔离存储文件流异常
我在点击按钮时从Internet异步读取文件,并将其写入txt文件。我总是在点击按钮时检查文件是否存在。如果文件不存在,我使用一个函数来下载它,然后调用函数来读取文件。 问题是我通常在IsoaltedStorageFileStream异常上获取不允许的操作。我从代码中删除了用于读取的函数,只调用了写入函数,然后在没有任何异常的情况下运行程序。然后我再次编写用于读取的函数,它就工作了。Windows phone 7 隔离存储文件流异常,windows-phone-7,isolatedstorage,Windows Phone 7,Isolatedstorage,我在点击按钮时从Internet异步读取文件,并将其写入txt文件。我总是在点击按钮时检查文件是否存在。如果文件不存在,我使用一个函数来下载它,然后调用函数来读取文件。 问题是我通常在IsoaltedStorageFileStream异常上获取不允许的操作。我从代码中删除了用于读取的函数,只调用了写入函数,然后在没有任何异常的情况下运行程序。然后我再次编写用于读取的函数,它就工作了。 为什么第一种方法不起作用?问题在于对文件的访问。如果您的异步操作打开了该文件,而该文件仍在写入,则您希望从中读取
为什么第一种方法不起作用?问题在于对文件的访问。如果您的异步操作打开了该文件,而该文件仍在写入,则您希望从中读取该文件。这是并发性问题。在逻辑中添加某种类型的锁定,即使是一个简单的布尔标志也足够了
private canRead = false;
当应用程序完成读取时,将其设置为true。然后在你的阅读逻辑中
if(canRead)
{
//read file
}
另一个选项是隐藏按钮并在下载完成时显示。锁定文件读/写可能重复的