タイトル : Re^3: System.Threading.Timeクラス? 投稿日 : 2009/01/07(Wed) 19:25 投稿者 : 魔界の仮面弁士
> 1.System.Timers.Timer()とSystem.Threading.Timerは同じものでしょうか? 3 つのタイマの違いについては、下記を参照してください。 http://www.atmarkit.co.jp/fdotnet/dotnettips/373threadtimer/threadtimer.html http://www.atmarkit.co.jp/fdotnet/dotnettips/374timerstimer/timerstimer.html http://www.atmarkit.co.jp/fdotnet/dotnettips/372formstimer/formstimer.html 通常の用途であれば、Windows アプリでは System.Windwos.Forms を使うのが一般的です。 これはメッセージベースのタイマーであるため、手軽に扱えますが、その反面、 何か重い処理が行われている場合、イベントの発生を取りこぼす可能性があります。 他の 2 つのタイマーは別スレッドで動作するため、そうした問題はありませんが、 マルチスレッドを意識したコーディングが必要となるので、扱いには注意が必要です。 > 2.GC.KeepAlive の説明で 花ちゃんさんのコードの意図は分かりませんが、GC.KeepAlive メソッドそのものは、 スコープの短いオブジェクト(ローカル変数)に対し、未使用と誤解されたオブジェクトが、 ガベージコレクトの対象とみなされないよう、有効期間を延長させるために使われます。 http://blogs.wankuma.com/shuujin/archive/2007/05/15/76794.aspx http://www.ailight.jp/blog/kazuk/archive/2005/03/22/5217.aspx # という事で、メソッド内で回収されるタイミングを遅らせるためのものといった # 認識でいるのだけれども……間違ってたら誰かフォローよろしく。 |