##
1 スケジューラオブジェクト

`scheduler`インスタンスは以下のメソッドを持っています:

`enterabs`( | time, priority, action, argument)

  新しいイベントをスケジュールします。引数timeは、 コンストラクタへ渡されたtimefuncの戻り値と互換な数値型で なければいけません。 同じtimeによってスケジュールされたイベントは、 それらのpriorityによって実行されるでしょう。

  イベントを実行することは、`action(*argument)`を 実行することを意味します。 argumentはactionのためのパラメータを保持するシーケンスで なければいけません。

  戻り値は、イベントのキャンセル後に使われるかもしれないイベントです (`cancel()`を見よ)。

`enter`( | delay, priority, action, argument)

  時間単位以上のdelayでイベントをスケジュールします。 そのとき、その他の関連時間、その他の引数、効果、戻り値は、 `enterabs()`に対するものと同じです。

`cancel`( | event)

  キューからイベントを消去します。 もしeventがキューにある現在のイベントでないならば、 このメソッドは`RuntimeError`を送出します。

`empty`( | )

  もしイベントキューが空ならば、Trueを返します。

`run`( | )

  すべてのスケジュールされたイベントを実行します。 この関数は次のイベントを(コンストラクタへ渡された関数 `delayfunc`を使うことで)待ち、そしてそれを実行し、 イベントがスケジュールされなくなるまで同じことを繰り返します。

  actionあるいはdelayfuncは例外を投げることができます。 いずれの場合も、スケジューラは一貫した状態を維持し、例外を伝播するでしょう。 例外がactionによって投げられる場合、イベントは`run()`への 呼出しを未来に行なわないでしょう。

  イベントのシーケンスが、次イベントの前に、利用可能時間より実行時間が長いと、 スケジューラは単に遅れることになるでしょう。 イベントが落ちることはありません; 呼出しコードはもはや適切でないキャンセルイベントに対して責任があります。