在WP7 Silverlight工程中引用XNA的小问题

WP7支持Silverlight和XNA两种Framework。但经常会碰到在Silverlight工程中引用XNA的DLL的情况,因为两种Framework有各自的偏重点,而且功能重复不多。例如要调用Zune的功能,播放歌曲或获取当前歌曲等等。我在Silverlight项目中引用了Microsoft.Xna.Framework.dll,使用了:

Song song = MediaPlayer.Queue.ActiveSong;

 各种功能用起来都没什么问题。但是每次Zune切换歌曲、快进、快退,我的程序都会崩溃。即使捕捉所有的异常都没用。实在没辙了,在论坛上发问,有人提醒说应该调用:

FrameworkDispatcher.Update();

 这个函数作用是更新各种XNA组件状态,并触发相应的事件。在XNA里建议是每帧都调用。我不知道在Silverlight里需要多频繁调用,但我只在Page_Load里调用一次,程序就再没有崩溃了。

在这里记一下,希望对碰到类似问题的朋友能搜索到这个问题,并有所帮助。

原文地址:https://www.cnblogs.com/wonderow/p/1900129.html