请问一个关于子进程的有关问题

请教一个关于子进程的问题
我写了一个程序,
在主进程中调用了子进程 CreateProcess(...);
然后中止了主进程的运行 WaitForSingleObject(m_hChildProcess,INFINITE);
我希望等子进程运行完了 主进程再运行。
但是当子进程运行时, 主进程的UI界面都刷新不过来, 就像死掉了一样,
必须等子进程完成后,主进程的UI界面才正常。

请问该怎么解决? 
本人对进程 线程这些不太懂, 请多多指教!

------解决方案--------------------
子进程的函数进行了什么操作

循环里最好Sleep(5)一下
------解决方案--------------------
主进程的主线程调用WaitForSingleObject阻塞了,界面自然就不刷新了

WaitForSingleObject(m_hChildProcess, INFINITE); // 表示无超时的等待
你要将程序的流程修改一下,不要无穷等待

你可以通过其他方式(定时器、多线程等)调用WaitForSingleObject(m_hChildProcess, 0)来检查子进程是否结束


------解决方案--------------------
先创建一个线程,在这个线程里CreateProcess,这样主线程就不会阻塞了
------解决方案--------------------
这个就是线程间通讯问题了。

有很多方法,一般简单的用事件就行了SetEvent
------解决方案--------------------
第一:主进程界面死掉是应该的,用WaitForSingleObject(m_hChildProcess,INFINITE); 之后主进程就不会被调度了,所以看起来像是死掉了。
第二:如果主进程里有一些操作必需等到子进程完成后才能开始, 
另一些操作,例如更新界面,在子进程运行时需要做, 
该怎么办?
====================
这要看你的工作是什么了,如果情况比较多,最好还是通过自定义消息来进行通信。子进程完成一个工作后向主进程发消息,表示它的工作状态。主进程根据消息作相应的工作。