2

Windows フォーム アプリケーションを作成しようとしていますが、タイマーを実装したいと考えています。

  public void timerStart()
    {
        DateTime now = DateTime.Now;
        DateTime finish = base.taskEndDate;
        finish = finish.AddHours(_appointmentTime.Hours); //_appointmentTime is a user defined value.
        finish = finish.AddMinutes(_appointmentTime.Minutes);
        finish = finish.AddMilliseconds(_appointmentTime.Milliseconds);

        //Calculating the milliseconds left till task ends.
        int daysLeft = finish.Day - now.Day;
        int hoursLeft = finish.Hour - now.Hour;
        int minsLeft = finish.Minute - now.Minute;
        int secLeft = finish.Second - now.Second;
        int milLeft = finish.Millisecond - now.Millisecond;

        //Preparing to Start the timer.
        TimeSpan end = new TimeSpan(daysLeft, hoursLeft, minsLeft, secLeft, minsLeft);
        MessageBox.Show(end.ToString());
        double x = end.TotalMilliseconds;
        System.Timers.Timer _timer = new Timer(x);          

    }

メソッドを定義した方法ですが、エラーが発生します

 'Timer' is an ambiguous reference between 'System.Windows.Forms.Timer' and 'System.Timers.Timer'

そして、エラーを解決する方法がわかりません。タイマーが終了したら、ユーザーに警告するイベントを作成する予定です。タイマーをフォームに表示したくありません。

4

3 に答える 3

6

using両方の参照(System.Windows.Formsと)を追加したようですSystem.Timers。したがって、1つを削除するか、タイプ名を完全に修飾します。

System.Timers.Timer _timer = new System.Timers.Timer(x);  
于 2012-05-01T14:23:05.350 に答える
5

次のように、型エイリアスを使用してそれらを明確にすることができます。

using System.Timers;
using Timer = System.Timers.Timer;
于 2012-05-01T14:26:21.793 に答える
2

System.Timers.Timer _timer = new System.Timers.Timer(x);

タイマーはフォームに表示されません。視覚的なものではありません。

また、DNFの(3つ!)異なるタイプのタイマーの違いにも注意してください。

http://msdn.microsoft.com/en-us/magazine/cc164015.aspx

于 2012-05-01T14:23:06.893 に答える