3

如果您将以下代码放在 MonoGame 应用程序的游戏循环(更新或绘图)中(可以只是默认项目模板):

new Windows.UI.Xaml.Media.Imaging.WriteableBitmap(150, 150);

它抛出一个跨线程错误......

The application called an interface that was marshalled for a different thread. (Exception from HRESULT: 0x8001010E (RPC_E_WRONG_THREAD))

所以我尝试了这个:

var dispatcher = Windows.UI.Core.CoreWindow.GetForCurrentThread().Dispatcher;
dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, delegate
{
     new Windows.UI.Xaml.Media.Imaging.WriteableBitmap(150, 150);
});

同样的错误。

从幕后看,MonoGame 看起来不像在后台线程或任何东西上运行游戏循环。它使用同步循环。

WriteableBitmap在 MonoGame中使用的任何想法?(我需要用它来渲染一些活瓷砖)

4

1 回答 1

1

如果您使用的是 Game 类,那么您创建的应用程序默认不支持 XAML。

目前,在 MonoGame 应用程序中支持 XAML 的最佳方式是使用此线程中概述的 Siverlight 样式 XNA 游戏...

http://monogame.codeplex.com/discussions/359544

于 2012-08-29T16:23:12.847 回答