showdialog 창이 활성화 상태일때 사용자 쓰레드도 실행이 안되는건가요??

UI 관련 작업은 UI 스레드 (메인 스레드)에서 해야 합니다. 윈폼이나 WPF가 그런 모델을 사용합니다. 그러므로

pMessage.Close()BeginInvoke(() => pMessage.Close())로 바꾸어야 하고요, 라벨링 할 때 UI 관련 작업 또한 마찬가지입니다.

간단하게 테스트하기 위해 다음의 코드로 확인하였습니다. 잘 동작합니다.

var waitForm = new WaitForm();
new Thread(() =>
{
    BeginInvoke(() => waitForm.ShowDialog());
    // 오래 걸리는 작업 시뮬레이션
    Thread.Sleep(5000);
    BeginInvoke(() => waitForm.Close());
}).Start();

다른 문제가 있는 것 같습니다.

6개의 좋아요