На проекте столкнулся с проблемой (написано очень много кода, и приходится его разгребать). Не стабильно появляются зависания UI.
Дело в том, что для каждого запроса используется модель:
запрос делается в потоке (поток может зависнуть), а приложение ждет когда поток отработает запрос по типу WaitForSignal(timeInterval), на время ожидания приложение зависает

в некоторых местах стоит даже InfiniteTimeout

.
Единственное, что приходит в голову переписать всё на#ер. Но заказчик на это не пойдёт.
Подскажите, пожалуйста, какую-нибудь схему, чтобы убрать подобные зависания с минимальными изменениями кода. Ибо от изучения такого кода, начинают мозги разжижаться, и уже ни чего не соображаешь ...