2

我正在尝试为 GridApp 创建数据源。我使用 GetFilesAsync() 从 PicturesLibrary 获取图像。我修改了 SampleDataSource.cs:在数据结构中我使用 StorageFile imagePath 而不是字符串 imagePath。当然,我编写了一个代码,它使用 IRandomAccessStream 从 StorageFile 创建 BitmapImage,而不是从 Uri 创建 BitmapImage。

所以这段代码可以编译但它不起作用。这里的原因是:异步方法 GetFilesAsync() 不会阻塞主线程。GroupedItemsPage.xaml.cs 在 GetFilesAsync() 提供必要信息之前询问 SampleDataSource。这会导致异常 TypeInitializationException。

显而易见的解决方案是使用 GetFilesAsync() 的同步模拟。但也有一些新问题:

  1. 从 KnownFolders.PicturesLibrary 同步获取文件似乎是不可能的。
  2. 这完全是个坏主意,因为如果我有大量图片,那么 GroupedItemsPage 的生成将导致严重冻结。

那么,我该如何解决这个问题呢?我只问解决方案的概念。我应该如何组织我的应用程序的架构?

4

0 回答 0