在论坛上看到一帖子如何每5秒往文本写一次
http://topic.csdn.net/u/20111018/22/29f137b0-f36e-4f02-9ec4-05b023842df7.html
我就想在控制台下写写看。
主要是两个线程,一个负责计算时间,一个负责写文本(这里我用输入一条信息来代替)。
// Per_5Sencond_WriteData.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <afxwin.h>
#include <winbase.h>
#include <afxmt.h>
CEvent gEv = NULL;//设置事件,让ComputeTime函数执行完成后,再执行后面的操作。
DWORD WINAPI WriteData( LPVOID pParam )
{
printf("执行WriteData函数...\n");
return 0;
}
DWORD WINAPI ComputeTime( LPVOID pParam )
{
Sleep(5000);
printf("暂停5秒...\n");
SetEvent(gEv);
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
// CRITICAL_SECTION ls;
HANDLE hWriteData,hTime;
int num = 0;
printf("进入之前\n");
while(num < 5)
{
// InitializeCriticalSection(&ls);
hTime = CreateThread(NULL,0,ComputeTime,NULL,0,NULL);
CloseHandle(hTime);
// DeleteCriticalSection(&ls);
// CloseHandle(hTime);
WaitForSingleObject(gEv.m_hObject,INFINITE); //等待计时线程执行完毕
//if (WAIT_OBJECT_0 != WaitForSingleObject(hTime,5000))
//{
hWriteData = CreateThread(NULL,0,WriteData,NULL,0,NULL);
CloseHandle(hWriteData);
// WaitForSingleObject(hWriteData,-1);
//}
num++;
}
system("pause");
return 0;
}