急急~~~~ 一个BCB定时器的问题
一个多线程多任务的系统,每个任务都采用每天定时自动运行的操作,比如10点 12点 3点等时间段检测到有任务的话就自动运行, 请问怎么样创建一个函数来实现这个功能,BCB中的Timer类怎么做来实现 和时间的同步,怎么做自动检测的功能呢?
[解决办法]
隔一定的时间获取一下本地时间然后判断,获取时间用Now();然后自己判断
[解决办法]
CreateWaitableTimer;//创建可等待计时器
SetWaitableTimer,CancelWaitableTimer;
具体函数怎么用看MSDN
//以下代码吧计时器的第一次触发时间设定为2008年1月1日下午1:00,之后每隔6小时触发一次HANDLE hTimer;SYSTEMTIME st;FILETIME ftLocal, ftUTC;LARGE_INTEGER liUTC;// Create an auto-reset timer.hTimer = CreateWaitableTimer(NULL, FALSE, NULL);// First signaling is at January 1, 2008, at 1:00 P.M. (local time).st.wYear = 2008; // Yearst.wMonth = 1; // Januaryst.wDayOfWeek = 0; // Ignoredst.wDay = 1; // The first of the monthst.wHour = 13; // 1PMst.wMinute = 0; // 0 minutes into the hourst.wSecond = 0; // 0 seconds into the minutest.wMilliseconds = 0; // 0 milliseconds into the secondSystemTimeToFileTime(&st, &ftLocal);// Convert local time to UTC time.LocalFileTimeToFileTime(&ftLocal, &ftUTC);// Convert FILETIME to LARGE_INTEGER because of different alignment.liUTC.LowPart = ftUTC.dwLowDateTime;liUTC.HighPart = ftUTC.dwHighDateTime;// Set the timer.SetWaitableTimer(hTimer, &liUTC, 6 * 60 * 60 * 1000, NULL, NULL, FALSE); ...