我有一个远程应用程序(2人魔术聚会游戏)在C#中使用Windows窗体,我看到很差 单声道表现。我能想到的一件可能影响性能的是我有按钮背景和表单背景(.png)的自定义图像。此外,我大量使用卡片图像(.jpg)。最后,我非常严格地坚持使用.NET 2.0。
我可以通过什么方式来改善单声道的窗体性能?如果这是不可能的,有一个快速winforms到gtk#转换器或工具,有助于转换?
答案 0 :(得分:5)
您是否尝试profile your code。也许这会告诉你瓶颈在哪里......
我认为一个大问题是
而.Net实现是一个 绑定到Win32工具包,Mono 实现是用C#编写的 允许它在多个平台上工作
如上所述here和
Mono中的System.Windows.Forms是 使用System.Drawing实现。所有 控件是原生的 System.Drawing中。 System.Windows.Forms的 实现自己的驱动程序接口 与主机OS窗口进行通信 系统
如here所述。
我不知道从winforms转换为gtk#...,但是如果你真的想把你的游戏转换为gtk#,那么this可能是一个很好的起点。
答案 1 :(得分:4)
如果您能准确详细说明您正在观察的性能问题,那将非常有用。
Mono的Windows.Forms实现今天有点慢,因为尝试正确地支持嵌入其中的WndProc模型所带来的一些要求。
这是一个可以改进的领域,并且很可能会将Wine的许多课程应用于Mono的Winforms实现。
答案 2 :(得分:2)
您是否尝试过分析它? Mono有一个内置的分析器。 There's a page on the mono website关于单声道分析器和其他性能提示。