摘要:                    
众所周知,一般可以调用WaitForSingleObject、WaitForMultiObject来实现线程同步。但是当多个线程等待同一个内核对象变为触发态时,这并不是一种明智的做法,这样会浪费大量的系统资源。而windows线程池很有效提供系统性能。 利用windows线程池实现,当内核对象变为触发态时,自动调用一个回调函数,一如既往的需要四步创建对应的回调函数,回调函数必须符合如下原型VOID CALLBACK WaitCallback( _Inout_ PTP_CALLBACK_INSTANCE Instance, ...                阅读全文
            
        随笔档案-2013年1月26日
C++ 定时器使用
2013-01-26 19:45 by java20130722, 473 阅读, 收藏,
摘要:                    
用WM_TIMER来设置定时器先请看SetTimer这个API函数的原型UINT_PTR SetTimer( HWND hWnd, // 窗口句柄 UINT_PTR nIDEvent, // 定时器ID,多个定时器时,可以通过该ID判断是哪个定时器 UINT uElapse, // 时间间隔,单位为毫秒 TIMERPROC lpTimerFunc // 回调函数 ); 例如SetTimer(m_hWnd,1,1000,NULL); //一个1秒触发一次的定时器在MFC程序中SetTimer被封装在CWnd类中,调用就不用指定窗口句柄了,例如:UIN...                阅读全文
            
        Chapter11-"windows线程池"之 间隔执行函数
2013-01-26 19:25 by java20130722, 492 阅读, 收藏,
摘要:                    
按照一定的时间间隔,周期性调用某个函数,大致需要用到以下五步按照一定的时间间隔,周期性被调用的TimerCallback函数的原型如下VOID CALLBACK TimerCallback( _Inout_ PTP_CALLBACK_INSTANCE Instance, _Inout_opt_ PVOID Context, _Inout_ PTP_TIMER Timer
);调用CreateThreadpoolTimer函数将TimerCallback函数通知给线程池(thread pool)PTP_TIMER WINAPI CreateThreadpoo...                阅读全文
            
        Chapter11-"windows线程池"之异步调用函数
2013-01-26 15:18 by java20130722, 268 阅读, 收藏,
摘要:                    
利用线程池(thread pool)异步调用函数时,不需显式调用 CreateThread 函数,系统会为进程自动创建线程池(thread pool)。线程池的每个线程实际运行你事先定义好的回调函数。 写到这里,也许大多人会想:怎么不直接调用众所周知的 CreateThread 函数去创建线程?这里就有必要讲一下线程池(thread pool)的机制了。 线程池(thread pool)的线程在执行完后不是立即销毁的(CreateThread创建的线程执行完成以后就销毁了),而是再次进入线程池(thread pool),等待进程请求该线程的再次执行。线程池的这种机制使得在需要创建许多线...                阅读全文
            
        __stdcall、__cdecl 、CALLBACK 几种函数修饰符
2013-01-26 10:19 by java20130722, 930 阅读, 收藏,
摘要:                    
CALLBACK == WINAPI ==__stdcall实际上就是一种调用模式,就是约定由调用函数来自行解决压栈参数,同 pascal 调用。回调函数只能是类的静态成员函数或是类外定义的全局函数#define CALLBACK __stdcall
#define WINAPI __stdcall
#define WINAPIV __cdecl
#define APIENTRY WINAPI
#define APIPRIVATE __stdcall
#define PASCAL __stdcall
#define cdecl _cdecl
#ifndef...                阅读全文
            
         
                    
                     
                    
                 
                    
                 浙公网安备 33010602011771号
浙公网安备 33010602011771号