问题很可能不是由文件访问代码本身引起的,而是由使用异步API的方式引起的。
因为
GetLogFolder
方法返回
Task
属于
StorageFolder
,您需要等待结果,而不是使用
Result
所有物原因是
async/await
模式允许您执行以下操作:
I/O工作在单独的线程上,但完成后将控制返回到UI线程
.你在这里要做的是打电话给
方法,让用户使用
FolderPicker
.
问题出在这里
-当控件返回到代码并查询
后果
财产
任务
返回
GetLogFolder
方法质疑
后果
属性导致UI线程停止并等待
任务
以获得结果。不幸的是,当用户选择文件夹时,控件希望返回UI线程继续执行
GetLogFolder
僵局
.
后果
属性停止UI线程以等待
任务
任务
解决方案非常简单-使用
async
/
await
关键词。您可以在VB.NET中阅读有关它们的更多信息
here with a clear example
.
在您的情况下,第一步是使按钮
Click
处理程序方法
然后将内部代码替换为以下代码:
Dim myFolder As StorageFolder = Await GetLogFolder