首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

急 一个BCB定时器的有关问题

2012-03-24 
急急~~~~ 一个BCB定时器的问题一个多线程多任务的系统,每个任务都采用每天定时自动运行的操作,比如10点 12

急急~~~~ 一个BCB定时器的问题
一个多线程多任务的系统,每个任务都采用每天定时自动运行的操作,比如10点 12点 3点等时间段检测到有任务的话就自动运行, 请问怎么样创建一个函数来实现这个功能,BCB中的Timer类怎么做来实现 和时间的同步,怎么做自动检测的功能呢?


[解决办法]
隔一定的时间获取一下本地时间然后判断,获取时间用Now();然后自己判断
[解决办法]
CreateWaitableTimer;//创建可等待计时器
SetWaitableTimer,CancelWaitableTimer;
具体函数怎么用看MSDN

C/C++ code
//以下代码吧计时器的第一次触发时间设定为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); ... 

热点排行