Нет. Делается глобальный счетчик в локе, далее присваивается номер уже в проекте. Если номер выше 0, то запущены лишние потоки которые будут завершены. Вот тут снипет, привет из 2014, логику сам дальше доделай. Минус единственный, что нужно обнулять глобалку в конце работы. Иначе при повторном запуске будет не 0, а какой нибудь 22.