Създавам нишка (само една), за да свърша някаква работа и тя до голяма степен се грижи за себе си, като няма достъп до никакви данни извън протектора, освен извикването на callback(), за да види дали потребителят иска да излезе (също изпраща отчет за състоянието обратно на основна нишка за показване в GUI).
Когато затварянето затваря exe, бих искал да събудя нишката и да я затворя, кой е най-добрият начин да направя това? Обратното извикване вече казва дали потребителят иска да се откаже, така че сега проблемът е използването на Thread.Sleep и събуждането му преждевременно, за да може да се откаже, вместо да поддържа процеса активен за още няколко секунди или минути. Тази функция би била добра за спиране, за да излезете по-бързо.