ディレクトリのリストを 2 秒ごとにチェックするプログラムを作成しています。このプログラムは、メモリ リークや人間の介入を必要とせずに数か月実行できると期待しています。
以下のプログラムにはメモリ リークがあります。
10K が何を表しているのかはまだわかりません。間隔ではありません。間隔は 2k です。
class Program
{
static void Main(string[] args)
{
Timer aTimer = new Timer(10000);
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
aTimer.Interval = 2000;
aTimer.Enabled = true;
Console.WriteLine("Press the Enter key to exit the program.");
Console.ReadLine();
GC.KeepAlive(aTimer);
}
private static void OnTimedEvent(object source, ElapsedEventArgs e )
{
Console.WriteLine("The Elapsed event was raised at {0}", e.SignalTime);
string[] DirList = Directory.GetFiles(@"C:\TTImer");
if (DirList.Length > 0)
{
foreach (string s in DirList)
{
//do something
}
}
}
}