У меня есть кнопка диалога запуска, которая создает модель представления окна и привязывает ее к окну (у него включена виртуализация пользовательского интерфейса). Запуск диалогового окна при первом нажатии занимает всего 1 секунду. Но если я открываю одно и то же диалоговое окно очень часто или один за другим, на заполнение источника данных сетки для следующей итерации уходит больше времени. если я даю некоторую паузу, а затем снова открываю окно, то это занимает всего около 1 или 2 секунд.
for first time populating the item source it take only 1 second:
next time populating the item source it takes 2 second
next time populating the item source it takes 3 second
next time populating the item source it takes 6 second
next time populating the item source it takes 8 second
Однако, если я вызываю GC.Collect(), что не рекомендуется, то заполнение источника данных сетки всегда занимает около 1 секунды. но призвание
Gc.Collect()
Gc.WaitForPendingFinalizer()
Gc.Collect()
стоило мне некоторого времени для каждой итерации.
Я знаю, что звонить GC.Collect
не лучший вариант. Может ли кто-нибудь предложить, как я могу повысить производительность моего приложения.
Меня больше беспокоит пользовательская машина, поскольку моя машина имеет очень хорошую конфигурацию, тогда как пользовательская машина может быть не такой быстрой.
.Dispose
некоторых ресурсов, прежде чем закрыть диалоговое окно? - person wildeyes   schedule 08.02.2016