关于SetWaitableTimer等的问题

netease 2003-03-13 05:26:51
我在ATL-〉Service中创建了一个工程
中间用到CreateWaitableTimer
然后我SetWaitableTimer
SetWaitableTimer返回值为1(正常)
然后我Sleep(INFINITE)
当然我定义了回调函数
VOID CALLBACK TimerAPCProc( LPVOID lpArg, // Data value.
DWORD dwTimerLowValue, // Timer low value.
DWORD dwTimerHighValue ) { // Timer high value.
DB *dbExec=new DB();
dbExec->QueryDB();
delete dbExec;

}
可以我定义的方法并没有执行,有人知道为什么吗?谢谢了。
...全文
274 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
AthlonxpX86 2003-03-13
  • 打赏
  • 举报
回复
贴主怎么搞定的,是不是那个参数添错了,说一下吧
netease 2003-03-13
  • 打赏
  • 举报
回复
我已经弄好了,不用open也是可以的。
但是我将功能封装到class中的时候还有些问题
看了帮助,好像也没有说必须用open呀,况且我不用open也搞定了。
ssschangyu 2003-03-13
  • 打赏
  • 举报
回复
同意楼上!
AthlonxpX86 2003-03-13
  • 打赏
  • 举报
回复
给的条件不全,不过我用过CreateWaitableTimer,我把我的关键代码贴出来你看看


VOID CALLBACK timerAPCProc(
LPVOID lpArgToCompletionRoutine,
DWORD dwTimerLowValue,
DWORD dwTimerHighValue
)
{
...................
}

.................
CString str;
str.Format("Athtime%d",fcount);
++fcount;
HANDLE htimer;
CreateWaitableTimer(NULL,FALSE,str);
htimer=OpenWaitableTimer(
TIMER_MODIFY_STATE, // access flag
FALSE, // inherit flag
str // pointer to timer object name
);
SetWaitableTimer(
htimer, // handle to a timer object
&DueTime, // when timer will become signaled
(long)(n*1000), // periodic timer interval
(PTIMERAPCROUTINE)&timerAPCProc, //completion routine
(LPVOID)(&mth), // data for completion routine
TRUE // flag for resume state
);

while(TRUE)
{
SleepEx(INFINITE, // Wait forever.
TRUE );
if(count==0)
{
break;
pdlg->UpdateData(FALSE);
}

}



你是不是没有open啊
uhlan 2003-03-13
  • 打赏
  • 举报
回复
GZ
rtdb 2003-03-13
  • 打赏
  • 举报
回复
GZ

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧