在vs2013 WP 8.1 Silverlight应用程序中访问文件属性时出现accessviolationexcep

本文关键字:文件属性 访问 accessviolationexcep 应用程序 WP vs2013 Silverlight | 更新日期: 2023-09-27 18:16:52

我试图从音乐文件中获取属性,如艺术家,专辑显示在我的应用程序中,但是当它到达属性属性时,调试器抛出异常,不能发布图像,所以消息是:

An unhandled exception of type 'System.AccessViolationException' occurred in UberPlayer.ni.DLL
Additional information: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.

我认为,因为它是在一个foreach上,它使用了大量的内存,会中断,但隔离代码如下:

IReadOnlyList<IStorageItemProperties> itemsListProperties = KnownFolders.MusicLibrary.GetFilesAsync().GetAwaiter().GetResult();
                   var test = itemsListProperties.First().Properties;

仍然得到异常消息,应用程序崩溃。

我是新的WP编程,但我认为它不应该是一个代码错误。有人知道吗?

我也在我的手机上运行调试,因为我的笔记本电脑无法模拟WP8.1

在vs2013 WP 8.1 Silverlight应用程序中访问文件属性时出现accessviolationexcep

我知道发生了什么,

看起来像istorageitemproperties类型不能从一个项目中检索属性,有趣的是,这是他的名字,或者它可能被废弃了。

它与StorageFile类型一起工作,还添加了一些等待,也许我走得太快了?: p

IAsyncOperation<IReadOnlyList<StorageFile>> async = KnownFolders.MusicLibrary.GetFilesAsync();
           var itemsList = await async;
           foreach (var item in itemsList)
           {
               var itemProp = item.Properties;
               var propMusic = await itemProp.GetMusicPropertiesAsync();
               Music m1 = new Music(propMusic.Title, propMusic.Artist, propMusic.Album, propMusic.Genre.ToString(), propMusic.TrackNumber.ToString(), propMusic.Duration, item.Path);
               _listMusic.Add(m1);
           }
           return _listMusic;

感谢所有参与讨论的人。