Метод Join ожидает завершения потока. Это означает, что не имеет значения, какой пункт меню был выбран, он всегда ожидает его завершения, прежде чем выбрать другой пункт меню.
Свойство IsBackground просто сообщает операционной системе, что если основной поток закрыт, фоновые потоки закрываются автоматически.
Вот идея:
1) создать логическую переменную MyThreadRunning
2) если MyThreadRunning = true, не показывать пункт меню для этой темы
3) внутри метода потока, когда он завершит работу, установите для MyThreadRunning значение false
4) когда вы выбираете пункт меню, запускающий поток, установите для переменной MyThreadRunning значение true и запустите поток.
Конечно, вам нужны разные переменные (или массив) для нескольких потоков. И используйте ключевое слово volatile для переменной или механизм блокировки.
РЕДАКТИРОВАТЬ: мне действительно нужно посмотреть предварительный просмотр перед публикацией: (* 1017 *