Вы не должны использовать второй поток для рисования (как говорили другие).
Если вы хотите обновить окно, когда действие происходит в другом потоке, то в другом потоке сделать недействительным окно для принудительной перерисовки, затем, когда происходит перерисовка, обновите окно с использованием любых новых значений.Таким образом, вам не придется выполнять ужасную синхронизацию операций рисования, с которыми у вас возникли проблемы.