スレッドセーフではないイベントAPIを使用しています。wait()
が呼び出され、その呼び出しからイベントハンドラーがディスパッチされます。イベントハンドラー内で、しばらくの間「スリープ」できるようにしたいと思います。現在、関数を後で呼び出すようにスケジュールするスケジューラーがあり、Scheduler.Sleeper(some_ienumerator)をイベントハンドラーとして使用できるようにするちょっとしたハックがあるので、一種のスリープとしてタイムスパンを生成できます。より良い解決策はありますか?C#にRubyスタイルのファイバーがある場合、スケジューラーに呼び出すことができるSleep()関数を持たせることができ、スリープ機能は、ハンドラーから直接ではなく、イベントハンドラーによって呼び出される関数に含めることができます。使いやすいファイバーがないので、他にできることはありますか?
明確化のための編集:wait(n)
ここでnは時間の長さであり、その待機呼び出し中に、APIはイベントハンドラーを呼び出します。これらのハンドラーの一部で「スリープ」したい理由は、これがゲーム用であり、何かをクリックした後、オブジェクトがたとえば1秒間光る場合があるためです。