Я не совсем уверен, что вы спрашиваете. Почему рисование в C # медленнее, чем в C ++? Прежде всего потому, что стандартный класс Graphics
, предоставляемый .NET Framework, использует методы рисования GDI +, которые намного медленнее, чем функции GDI, используемые C / C ++.
Вам интересно, как ускорить рисование в C #? Было бы очень полезно, если бы вы опубликовали соответствующий раздел (ы) своего кода, который, по вашему мнению, слишком медленный. Хотя использование библиотеки Graphics
определенно медленнее, чем некоторые альтернативы, в большинстве случаев ее производительность не является фактором. Если вы не рисуете много графики в тесном цикле, у вас не должно возникнуть никаких проблем. Если это так, более вероятно, что ваш код может быть оптимизирован , а не заменен полностью. (Конечно, C # - это не то, что вы захотите использовать, если вы действительно ищете графику в реальном времени. В вашем вопросе недостаточно подробностей, чтобы сказать.)
В качестве альтернативы, вы можете P / вызывать основанные на GDI функции рисования из Win32 API и / или рассмотреть возможность использования кода unsafe
в своем приложении C # для непосредственного управления растровыми изображениями. Это должно дать вам очень сравнимую производительность с кодом рисования в C ++ DLL, которую вы упоминаете в своем вопросе, потому что вы будете использовать те же процедуры. Тем не менее, еще раз, вам нужно будет предоставить более подробную информацию в вашем вопросе, если кто-либо из нас предоставит более конкретный, полезный совет.