WideStudio/MWT Class Reference

WideStudio/MWT Home
Up to


クラスの型

WSDmutex

メソッド関数仕様



getNewInstance() 関数の説明

書式
WSDmutex* WSDmutex::getNewInstance()
機能
WSDmutex インスタンスを取得します。 WSDmutex インスタンスは、new 演算子で生成せず、 この getNewInstance() メンバ関数で生成します。
処理
引数
なし。
返値
WSDmutex インスタンスへのポインタ
注意
この関数はスタティック関数です。
サンプル
initialize() を参照してください。



initialize 関数の説明

書式
long initialize()
機能
ミューテックスを初期化します。 使用前に、一度初期化を行なって下さい。
処理
引数
なし。
返値
WS_NO_ERR= 正常、それ以外はエラー。
注意
サンプル
複数のスレッドからアクセスされる場合のある処理に対して 排他を行なう例です。
WSDmutex* mutex = NULL;
void* thread_proc(WSDmutex* thr,void* data){
  //スレッドで処理...
  mutex->lock(); //排他 
  //排他内
  mutex->unlock(); //排他解除
  return NULL;
}
void* thread_proc2(WSDmutex* thr,void* data){
  //スレッドで処理...
  mutex->lock(); //排他 
  //排他内
  mutex->unlock(); //排他解除
  return NULL;
}
void sample_event_procedure(WSCbase* object){
  //排他を行なうためのミューテックスを生成
  mutex = WSDmutex::getNewInstance();
  mutex->initialize();

  //スレッドインスタンスを生成
  WSDthread* thr = WSDthread::getNewInstance();
  WSDthread* thr2 = WSDthread::getNewInstance();

  //スレッドとして起動する関数を設定。
  thr->setFunction(thread_proc);
  thr2->setFunction(thread_proc2);

  //スレッドを生成
  thr->createThread(NULL);
  thr2->createThread(NULL);
}



lock 関数の説明

書式
long lock()
機能
ミューテックスをロックします。
処理
引数
なし。
返値
WS_NO_ERR= 正常、それ以外はエラー。
注意
サンプル
initialize() を参照してください。



unlock 関数の説明

書式
long unlock()
機能
ミューテックスを解除します。
処理
引数
なし。
返値
WS_NO_ERR= 正常、それ以外はエラー。
注意
サンプル
initialize() を参照してください。


Document Release 3.90

For Use with WideStudio/MWT Release 3.90, Summer 2005


WideStudio/MWT Home | Up to

Copyright(C) WideStudio/MWT Development Team, 1999-2005 Last modified: June 25, 2005