私は非同期操作(一連のネットワークIO)でタイムアウトを実装していますが、どちらが「より良い」(割り当て/パフォーマンスから)という観点からはわかりません。 EventWaitHandleとRegisterWaitForSingleObjectを使用するか、単にTimerを作成し、Tickを使用するだけです。.Netタイムアウト:WaitForSingleObjectとタイマー
特定のケースでは、EventWaitHandleは遅延生成されますが、明らかにWaitForSingleObjectを使用するようにインスタンス化する必要があります。だからこれは実際にWaitHandle + WaitForSingleObjectとTimerのリソースコストに関する質問です。どちらのアプローチも実装が簡単です。
私はさまざまな時に両方を実装しているので、私は地形を理解しています。どちらのアプローチが「より良い」か分かりません。
彼のブログ記事は使い方をよく比較していますが、どちらか一方を優先させることを強く推奨するものではありません。そして私がそれについて考えればするほど、カーネルの移行などの点で違いは見られませんでした。基本的なWin32 APIとのコスト差があるかどうかを知りたいのですが、.net実装の「重み」も私が見つけた最高の答えのようです。 – piers7