本人新手,请问几次执行同一个CreateThread会产生什么情况

本人新手,请教几次执行同一个CreateThread会产生什么情况?
比如,
DWORD __stdcall Thread(LPVOID lpParameter) //线程函数
{
CMultiThreadDlg* pDlg = (CMultiThreadDlg*)lpParameter; //获取对话框
CString szCounter; //定义一个字符串
for (int i=0; i<9999;i++) //设计循环
{
szCounter.Format("%d", i); //格式化字符串
pDlg->m_Counter.SetWindowText(szCounter); //设计编辑框文本
szCounter.ReleaseBuffer();
}
return 0;
}

void CMultiThreadDlg::OnStart() 
{
m_hThread = CreateThread(NULL, 0, Thread, this, 0, NULL); //创建线程
ResumeThread(m_hThread);
}

这个在文本框里显示计数,OnStart开始计数按钮,连按几次Start以后,文本框里的数字会变化的越来越慢,一会儿又恢复很快的速度,这是怎么回事。



还有这个!!!!!!!

unsigned long __stdcall CounterProc(void* lpParameter)
{
CAccessConflictDlg* pDlg = (CAccessConflictDlg*)lpParameter;
char szText[128] = {0};
while (pDlg->m_nCounter < 100) //定义一个循环
{

memset(szText, 0, 128);
WaitForSingleObject(pDlg->m_hEvent, INFINITE); //等待事件对象
wsprintf(szText, "线程一输出当前计数:%d", pDlg->m_nCounter);
pDlg->m_List.AddString(szText);
pDlg->m_nCounter++; //使计数加一
Sleep(100); //延时100毫秒
SetEvent(pDlg->m_hEvent); //设置事件为有信号状态
}
return 0;
}

unsigned long __stdcall OutputProc(void* lpParameter)
{
CAccessConflictDlg* pDlg = (CAccessConflictDlg*)lpParameter;
char szText[128] = {0};
while (pDlg->m_nCounter < 100) //定义一个循环
{
memset(szText, 0, 128);
WaitForSingleObject(pDlg->m_hEvent, INFINITE); //等待事件对象
wsprintf(szText, "线程二输出当前计数:%d", pDlg->m_nCounter);
pDlg->m_List.AddString(szText);
pDlg->m_nCounter++; //使计数加一
Sleep(100); //延时100毫秒
SetEvent(pDlg->m_hEvent); //设置事件为有信号状态
}
return 0;
}


void CAccessConflictDlg::OnStart() 
{
m_hEvent = CreateEvent(NULL, FALSE, TRUE, "EVENT");
HANDLE hCounterThread = CreateThread(NULL, 0, CounterProc, this, 0, NULL);
//创建一个线程
HANDLE hOutputThread = CreateThread(NULL, 0, OutputProc, this, 0, NULL);

CloseHandle(hCounterThread); //关闭线程句柄
CloseHandle(hOutputThread); //关闭线程句柄
}

就是两个线程交替输出,应该输出
线程一输出当前计数:0
线程二输出当前计数:1
线程一输出当前计数:2
。。。。。
。。。。。

我感觉应该输出到99啊,但是最后是到100
而且多点几下开始按钮,最后输出到的数更大,一百零几我都不知道是怎么出来的~~~~~


我刚学,求教育~~

------解决方案--------------------
探讨

不要在线程函数中直接操作窗口控件,改用发送自定义消息到UI线程,在UI线程的自定义消息响应函数中去更新控件的操作吧~