Wide Studio Object Reference

| Wide Studio Object Reference |
Wide Studio Home
Up to
  ## クラスの型 WSDsemaphore ## メソッド関数仕様 ### getNewInstance() 関数の説明 書式 WSDsemaphore* WSDsemaphore::getNewInstance() 機能 WSDsemaphore インスタンスを取得します。 WSDsemaphore インスタンスは、new 演算子で生成せず、 この getNewInstance() メンバ関数で生成します。 処理 引数 なし。 返値 WSDsemaphore インスタンスへのポインタ 注意 この関数はスタティック関数です。 サンプル initialize() を参照してください。 ### initialize 関数の説明 書式 long initialize() 機能 セマフォを初期化します。 使用前に、一度初期化を行なって下さい。 処理 引数 なし。 返値 WS_NO_ERR= 正常、それ以外はエラー。 注意 サンプル メインスレッドとサブスレッドにおいて 同期処理を行なう例です。
      WSDsemaphore* sem = NULL;
      void* thread_proc(WSDsemaphore* thr,void* data){
        sem->lock(); //同期待ち

        //スレッドで処理...
        return NULL;
      }
      void sample_event_procedure(WSCbase* object){
        //排他を行なうためのミューテックスを生成
        sem = WSDsemaphore::getNewInstance();
        sem->initialize();
        sem->lock();

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

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

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

        // セマフォを解除し同期待ちしているスレッドを起こす
        sem->unlock();
      }
### 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