I do not understand why my program blocks when processing a long routine eventhough I use CreateThread...any clue??

m_hThread = CreateThread( 0,
0,
ThreadFunc,
(LPVOID)Param,
0,
&m_dwThreadID);

The ThreadFunc is accessed but my dialog remains blocked until the end of the process...