ハンスと私は最近このテーマについて小さな議論をしましたが、それが実際にどのように実装されているのか興味があります。
ここのコメントで最初の話を参照してください:c#タイマーは自然にマルチスレッド化されていますか?
ハンスと私は最近このテーマについて小さな議論をしましたが、それが実際にどのように実装されているのか興味があります。
ここのコメントで最初の話を参照してください:c#タイマーは自然にマルチスレッド化されていますか?
.Net 4.0リファレンスソースを見つめて、実際の実装の詳細を処理するためSystem.Timers.Timer
にを使用しているようです。System.Threading.Timer
後者は、を呼び出すことによってタイマーを生成しますAddTimerNative
。 AddTimerNative
内部呼び出しです。
グーグルは、 Willy DenoyetteAddTimerNative
のコメントを含む多くの興味深い結果につながります。彼は、 CreateTimerQueueTimerを呼び出すと述べています。
そのページには、「コールバック関数はスレッドプールのキューに入れられている」と記載されています。
さて、私はいくつかの調査をしました...詳細は私のブログ投稿にあります
簡単に言うと、そこからの要約です。