私は C# でコンソール アプリケーションを作成しました。メインメソッド (静的) があり、2 つのタイマーを初期化し、2 つのメソッドをそれぞれ処理する必要があります。これらのメソッドは、何らかのタスクを実行するために定期的に呼び出されます。ここで、他のすべてのメソッド/変数を静的にしました。これは、タイマー ハンドラー イベントから呼び出しているためです (メインから呼び出すため静的です)。
上記のシナリオで、このコンソールが長時間実行されている場合にメモリがどのように消費されるかを知りたいですか? おっとコンセプトを適用したい場合は、すべてのメソッド/変数を非静的にし、クラスのオブジェクトを作成してアクセスする必要がありますか? この場合、メモリはどのように消費されますか?
更新: 以下は私のコードのスニペットです
public class Program
{
readonly static Timer timer = new Timer();
static DateTime currentDateTime;
//other static variables
//-----
static void Main()
{
timer.Interval = 1000 * 5;
timer.AutoReset = true;
timer.Enabled = true;
timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);
timer.Start();
//2nd timer
//-----
System.Console.ReadKey();
timer.Stop();
}
static void timer_Elapsed(object sender, ElapsedEventArgs e)
{
currentDateTime = DateTime.UtcNow;
PushData();
}
private static void PushData()
{
//Code to push data
}
}