2011-10-19 11 views
1

たとえば、同時に実行されるサーチャー操作があります。最初にマッチするものは、guiにマッチするアップデータタスクを開始する必要があります。私はアップデータが一度だけ起動されることを保証したいと思いますが、私は検索者の操作に最低限のオーバーヘッドを加えるようにしたいと思います。を実行すると、ブロックまたはタスクが1回だけ実行されることを保証する良い方法はありますか?

編集:可能であれば、私はmacrubyでこれをやりたいのですが、現在はdispatch_onceのマッピングがありません。

答えて

1

あなたは、私がMacRubyのを知らないが、多分あなたはグローバルフラグを考えることができdispatch_once

+0

ありがとうございました。残念ながら、これはmacrubyでは実装されていません(実装される予定はありません)。おそらく、私はobj-cクラスを作り、その部分だけを行うことができます。 –

0

を使用します。 mutexを使用すると、1つのスレッドだけが変数にアクセスできるようになります。アップデータを呼び出す前に、各スレッドは変数をチェックする必要があります。 falseの場合、変数をtrueに設定してアップデータを呼び出し、それ以外の場合はそのまま続行します。

関連する問題