0

我在单击按钮时从 Internet 异步读取文件并将其写入 txt 文件。如果文件存在,我总是检查按钮单击。如果文件不存在,我使用一个函数来下载它。之后我调用函数来读取文件。问题是我通常在 IsoaltedStorageFileStream 异常上不允许操作。我从代码中删除了读取函数,只调用了写入,然后运行程序没有任何异常。然后我再次编写读取函数,它可以工作。为什么第一种方法不起作用?

4

1 回答 1

0

问题在于对文件的访问。如果您的异步操作打开了文件,并且当它仍在写入时,您想要读取它。这是并发问题。在逻辑中添加某种锁定,即使是简单的布尔标志也足够​​了。

private canRead = false;

当应用程序完成阅读时,将其设置为 true。然后在你的阅读逻辑中

if(canRead)
{
     //read file
}

其他选项是隐藏按钮并在下载完成时显示它。

于 2012-06-11T17:22:12.377 回答