首页
社区
课程
招聘
[求助]APC函数何时被调用?
发表于: 2009-10-7 17:52 3740

[求助]APC函数何时被调用?

2009-10-7 17:52
3740
UINT CALLBACK ThreadProc1(PVOID params)
{
	printf("Start\n");
	SleepEx(1000, TRUE);
	return 0;
}

VOID WINAPI ApcFunc(DWORD dwParam)
{
	printf("apc invoke!\n");
}

int main(int argc, char* argv[])
{
	HANDLE hThread1 = (HANDLE)_beginthreadex(NULL, 0, ThreadProc1, NULL, 0, NULL);
	QueueUserAPC(ApcFunc, hThread1, NULL);
	WaitForSingleObject(hThread1, INFINITE);
	return 0;
}



为什么先输出了apc invoke

apc函数的调用不是应该在输出start之后的 sleepex时么  sleepex使线程进入可提醒睡眠中。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 251
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
线程从内核出来时条件允许就会投递APC,而线程初始状态就是可以投递APC的
所以这个测试变成了和线程调度的先后相关了,哪条先输出不固定
2009-10-7 18:44
0
游客
登录 | 注册 方可回帖
返回
//