У меня возникает проблема с тупиком при уничтожении некоторых потоков. Я пытался отладить проблему, но тупик никогда не существует при отладке в среде IDE, возможно, из-за низкой скорости событий в среде IDE.
Проблема:
Основной поток создает несколько потоков при запуске приложения. Нити всегда живы и синхронизируются с основным потоком. Никаких проблем. Нити уничтожаются, когда приложение заканчивается (mainform.onclose) следующим образом:
thread1.terminate;
thread1.waitfor;
thread1.free;
и т.д.
Но иногда один из потоков (который регистрирует некоторую строку в заметке, используя синхронизацию) блокирует все приложение при закрытии. Я подозреваю, что поток синхронизируется, когда я вызываю waitform, и происходит событие harmaggeddon, но это просто предположение, потому что тупик никогда не бывает при отладке (или я никогда не смог воспроизвести его в любом случае). Любые советы?