|  | 分類:[C#]
 
 (winXP,VS2005,C#)
 
 現在、Formデザインの元となるFormBaseを作成し、
 FormBaseを継承し画面を作成しています。
 
 FormBase内で時計を動かすためTimerメソッドを使用しているのですが
 コンストラクタでTimerのインスタンスを作成し、イベント宣言を行うと
 画面遷移を行うたびにフォームが開放されずメモリリークが起きてしまっている状態です。
 
 【FormBaseコンストラクタ】
 private Timer secTimer;
 
 public FormBase()
 {
 InitializeComponent();
 
 //現在時刻の表示
 lblTime.Text = getNowDateTime();
 
 //タイマースタート
 secTimer = new Timer();
 secTimer.Interval = 1;
 secTimer.Tick += new EventHandler(secTimer_Tick);
 secTimer.Start();
 
 }
 
 
 
 コンストラクタでTimerメソッドを使用せず、デザイン時点でTimerコントロールを実装すれば
 メモリリークせず動くことは確認できたのですが前者との違いがわかりません。
 (コンストラクタ内にDesigner.csを呼び出すInitializeComponentがあるのに違いがわかりません。)
 
 コンストラクタにTimerを実装する場合とデザイン時に実装する場合とで違いがあるのでしたら
 教えていただきたいと思っています。
 
 宜しくお願いいたします。
 
 |