tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 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

# という事で、メソッド内で回収されるタイミングを遅らせるためのものといった
# 認識でいるのだけれども……間違ってたら誰かフォローよろしく。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。