12
関数呼び出しの遅延
スレッドの実行を継続させながら関数呼び出しを遅らせる簡単な方法はありますか? 例えば public void foo() { // Do stuff! // Delayed call to bar() after x number of ms // Do more Stuff } public void bar() { // Only execute once foo has finished } タイマーとイベントハンドラーを使用してこれを実現できることは承知していますが、これを実現する標準のc#方法があるかどうか疑問に思っていましたか? 誰かが好奇心を持っている場合、これが必要な理由は、foo()とbar()が異なる(シングルトン)クラスにあり、例外的な状況でお互いを呼び出す必要があるためです。これは初期化時に行われるため、fooは、作成されているfooクラスのインスタンスを必要とするbarを呼び出す必要があるという問題があります。悪いデザインのほとんどスマック! 編集 悪いデザインについてはアドバイスをいただきながらポイントを取っていきます!私はシステムを改善できるかもしれないと長い間考えていましたが、この厄介な状況は例外がスローされたときにのみ発生し、それ以外の場合は2つのシングルトンが非常にうまく共存します。私は厄介な非同期パターンでメッセージを書くつもりはなく、クラスの1つの初期化をリファクタリングするつもりだと思います。