■28365 / ) |
Re[14]: ガベージコレクションについて |
□投稿者/ .SHO (159回)-(2008/11/25(Tue) 12:48:39)
|
■No28362 (nori さん) に返信
> this.Menu = menu;
> この一文でFormから参照される事になるのでGC対象外になります。
なるほど。だから、タイマーなんですね。
> >明示的にGCを起こしたり
> GC.Collect
> です。
こんなの作ってみました↓
using System;
using System.Windows.Forms;
public class form : Form {
public form() {
System.Timers.Timer timer1 = new System.Timers.Timer( 120000 );
timer1.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed1);
timer1.AutoReset = true;
timer1.Start();
System.Timers.Timer timer2 = new System.Timers.Timer( 1000 );
timer2.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed2);
timer2.AutoReset = true;
timer2.Start();
}
void timer_Elapsed1( object sender, System.Timers.ElapsedEventArgs e ) {
Console.WriteLine( DateTime.Now );
}
void timer_Elapsed2( object sender, System.Timers.ElapsedEventArgs e ) {
GC.Collect();
Console.Write( "*" );
}
static void Main() { Application.Run( new form() ); }
}
とりあえず、まだ5分ぐらいですが問題なく動き続けてます。
|
|