MCI 多线程

MCI
MCI 媒体控制接口
MCI 命令字符串   mciSendString();


open close
play stop
record save
pause resume
seek capacity
info status


创建线程
AfxBeginThread()
线程函数
typedef UINT (AFX_CDECL AFX_THREADPROC)(LPVOID)


线程同步的方法:
1、临界区  ->  CCriticalSection  (应用程序对象)
 CCriticalSection *cs;
 cs = new CCriticalSection();
 cs->lock();
 保护代码
 cs->unlock();


2、互斥量  ->  CMutex   (windows内核对象)


 CMutex *mutex;   //创建互斥量对象
 mutex = new CMutex();
 CSingleLock singleLock(mutex);   //创建锁
 singleLock.Lock();    //加锁
 if(singleLock.IsLocked())   //如果加锁成功则执行被保护的代码
 {
   被保护代码                               
  }
 singleLock.Unlock();              //解锁


3、信号量  ->  CSemaphore    (windows内核对象)


 CSemaphore *sp;   //创建互斥量对象
 sp = new CSemaphore(1, 1);
 CSingleLock singleLock(mutex);   //创建锁
 singleLock.Lock();    //加锁
 if(singleLock.IsLocked())   //如果加锁成功则执行被保护的代码
 {
   被保护代码                               
  }
 singleLock.Unlock();              //解锁


4、事件    ->  CEvent         (windows内核对象)


 CEvent *event;
 event = new CEvent(TRUE);
 CSingleLock singleLock(mutex);   //创建锁
 singleLock.Lock();    //加锁
 if(singleLock.IsLocked())   //如果加锁成功则执行被保护的代码
 {
   被保护代码                               
  }
 singleLock.Unlock();              //解锁
 event->SetEvent();

你可能感兴趣的:(MCI 多线程)