Wide Studio Object Reference

| Wide Studio Object Reference |
Wide Studio 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.20 For Use with Wide Studio Release 3.20, Winter 2002 WideStudio Home | Up to
Copyright(C) T. Hirabayashi, 1999-2002 |  | Last modified: Nov. 28, 2002