Почему с помощью ComponentResourceManager установить изображение примерно на 100 мс медленнее, чем с помощью растрового изображения? - PullRequest
0 голосов
/ 04 февраля 2012

Я использую Winforms и мне нужно, чтобы запуск моей программы был максимально быстрым.Каждая миллисекунда имеет значение.

Я нашел интересное наблюдение.При добавлении изображения с использованием ресурса (способ добавления изображения в элемент управления по умолчанию в Winform), например, кнопки, загрузка формы занимает около 100 миллисекунд по сравнению с тем моментом, когда я добавляю прямое растровое изображение.Сравните:

System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
button1.Image = ((System.Drawing.Image)(resources.GetObject("button1.Image")));

Приведенный ниже код работает примерно на 100 мс быстрее (увеличение скорости не распространяется на дополнительные изображения):

button1.Image = new Bitmap("myimage.png");

Мне было интересно, почему первый такой медленный,и если я могу как-то ускорить это?Я предпочел бы использовать первый, потому что он встраивает картинку в exe (и я не хочу предоставлять все изображения отдельно).

Эта проблема касается, вероятно, всех элементов управления, которые позволяют добавлять изображение(Я тестировал с помощью графического окна и кнопки).

1 Ответ

2 голосов
/ 20 ноября 2014

попробуйте предварительно настроить ресурсы System.ComponentModel.ComponentResourceManager.вероятно, что дополнительные 100 мс предназначены для создания объекта ComponentResourceManager

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...