Mac OS X 10.6 から追加された Grand Central Dispatch (GCD) を利用するために、MacRuby には Dispatch モジュールと、以下のようにいくつかのクラスがあります。
RubyGems の Dispatch ライブラリを用いると、より簡単に GCD を使うこともできます。
Dispatch モジュールの定数
Dispatch::TIME_NOW
「処理をすぐに開始する」と指示するときに使用します。GCD API で DISPATCH_TIME_NOW
として定義されている定数と同じ定数です。
1 2 3 4 |
|
Dispatch::TIME_FOREVER
処理が完了するのをタイムアウトなしで待ち続けたりするときに使用します。GCD API で DISPATCH_TIME_FOREVER
として定義されている定数と同じ定数です。
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Dispatch モジュールのメソッド
Dispatch#resume!
中断されている処理を再開します。GCD API の dispatch_resume
に相当します。
- resume!
1 2 3 4 5 6 7 8 9 10 |
|
Dispatch#suspend!
処理を中断します。GCD API の dispatch_suspend
に相当します。
- suspend!
Dispatch#suspended?
処理が中断されているかを返します。
- suspended? -> bool
- [RETURN]
- 処理が中断されていれば true、そうでなければ false を返します。
- [RETURN]
Dispatch#dispatch_object
dispatch_object_t のオブジェクトを返します。Cocoa API で dispatch_queue_t などのオブジェクトが必要なときに用います。Dispatch::Queue などのオブジェクトは MacRuby 独自のものなので、このメソッドが返すオブジェクトを Cocoa API に渡す必要があります。
- dispatch_object -> object
- [RETURN]
- dispatch object を返します。
- [RETURN]
1 2 3 |
|