Мое Windows Forms приложение запускает с десяток потоков, состояние работы которых отображается в списке на форме.
Отображение происходит так: каждый поток знает ссылку на форму и вызывает для неё Invoke, куда передаёт делегат функции обновления контрола.
Когда я запускаю программу, я вожу мышкой окно и наблюдаю, что оно "застревает" в своём движении. Значит -- что-то подвешивает GUI.
Сама функция обновления очень коротенькая -- просто обновляет строку и сразу возвращается. Кроме того, я отключал это обновление -- застревание продолжалось. Зато, когда я убирал из потока все операции с файлами, застревание исчезало, хотя и производилось обновление данных.
В общем, различными проверками я пришёл к выводу, что задерживает работу не мой код. Такое впечатление, что в библиотеке есть "бутылочные горлышки", то есть, методы, при запуске которых, выполнение основного потока приостанавливается.
Вот и вопрос: какими техническими средствами можно их найти?
27.09.10 11:56: Перенесено из '.NET'