2008/11/25(Tue) 15:55:42 編集(投稿者)
■No28382 (渋木宏明(ひどり) さん) に返信
> 僕は確認してませんが、そのようですね。
すっきりしました!
ちなみに System.Threading.Timer の方も実験してみましたが
こちらは当然ダメでした。
using System;
using System.Threading;
public class form : System.Windows.Forms.Form {
public form() {
TimerCallback e1 = new TimerCallback( elapsed1 );
TimerCallback e2 = new TimerCallback( elapsed2 );
Timer timer1 = new Timer( e1, null, 120000, 120000 );
Timer timer2 = new Timer( e2, null, 1000, 1000 );
}
void elapsed1( Object s ) { Console.WriteLine( DateTime.Now ); }
void elapsed2( Object s ) { GC.Collect(); Console.Write( "*" ); }
static void Main() { System.Windows.Forms.Application.Run( new form() ); }
}
は、「*」を1個表示して止まりました。
using System;
using System.Threading;
public class form : System.Windows.Forms.Form {
static TimerCallback e1 = new TimerCallback( elapsed1 );
static TimerCallback e2 = new TimerCallback( elapsed2 );
Timer timer1 = new Timer( e1, null, 120000, 120000 );
Timer timer2 = new Timer( e2, null, 1000, 1000 );
static void elapsed1( Object s ) { Console.WriteLine( DateTime.Now ); }
static void elapsed2( Object s ) { GC.Collect(); Console.Write( "*" ); }
static void Main() { System.Windows.Forms.Application.Run( new form() ); }
}
に修正すれば、当然問題なく動いています。