안녕하세요, 여태 Thread 실행되는 타이밍 때매 고생하고 있네요.. ㅠㅠ

하다하다 안되서 질문 한번 올려봅니다.
우선 대충 코드를 설명드리면,

mainClass
{
     ....
     onPreferenceTreeClick()
     {
            ..... 
            if(btn is clicked)
            {
                   threadFunc();
                   checkFunc();
                    ......
             }
     }

     checkFunc()
     {
           // check files
      }

     threadFunc()
     {
           // thread with handler
      }
}

이런 식입니다..
참고로 checkFunc 은 한 15초 정도 걸리는 작업을 수행하는데,
그 동안 threadFunc 이용해서 ProgressDialog를 띄워주려고 해요..
그런데 문제는 ProgressDialog가 checkFunc 끝날 때 뜨는 AlertDialog 와 함께 뜬다는 겁니다.
그러니까 checkFunc 이 수행되는 15초 간은 아무 일도 일어나지 않는 거에요..
왜 threadFunc 이 바로 수행이 안되는 것일까요..
수행은 바로 되는데 뭔가 다른 문제가 있는 걸까요? ㅠㅠ
threadFunc만 아래 다시 올려볼게요.. 혹시 도움 주시는 데 도움이 될 지도 모르니까요..

감사합니다. 좋은 밤들 되세요.. 

private final void threadFunc()
{
        final Handler handler = new Handler();
   
        final Runnable showDlg = new Runnable() {
            public void run() {
              showDialogProgress();    // ProgressDialog 띄우는 함수
            }
        };

        Thread toggleShowingThread = new Thread() {
            @Override
            public void run() {
                handler.post(showDlg);
            }
        };
        toggleShowingThread.start();
}