2、临界区
临界区对象运行在用户模式。它能保证在临界区内所有被访问的资源不被其它线程访问,直到当前线程执行完临界区代码。
- void InitializeCriticalSection ( LPCRITICAL_SECTION );
- void EnterCriticalSection ( LPCRITICAL_SECTION );
- void LeaveCriticalSection ( LPCRITICAL_SECTION );
- void DeleteCriticalSection ( LPCRITICAL_SECTION );
- 举例如下:
- void CriticalSectionExample (void)
- {
- CRITICAL_SECTION csMyCriticalSection;//注意这个只是定义个变量就可以了,非常好用
- InitializeCriticalSection (&csMyCriticalSection); ///初始化临界区变量,这个是不能少的
- __try
- {
- EnterCriticalSection (&csMyCriticalSection); ///开始保护机制
- ///此处编写代码
- }
- __finally ///异常处理,无论是否异常都执行此段代码
- {
- LeaveCriticalSection (&csMyCriticalSection); ///撤销保护机制
- }
- }
- //=========================================================================
刚才我看了三星官网的驱动,的确在初始化摄像头的时候开了临界区。我现在马上试试。
转载请标明wogoyixikexie@gliet桂林电子科技大学一系科协,如有错误,希望能够留言指出。