2016-09-27 48 views
-2

我在我的WPF應用程序中使用TimeSpanTimeSpan.FromSeconds給出指定參數的錯誤超出了有效值的範圍。參數名稱:Interval

var trigger = new TimeTrigger(); 
trigger.Repetition.Interval = TimeSpan.FromSeconds(3.0); 

這是給我一個錯誤:

Specified argument was out of the range of valid values.Parameter name: Interval

我讀過這樣的:https://msdn.microsoft.com/en-us/library/system.timespan.fromseconds(v=vs.110).aspx

我做錯了嗎?

+1

顯然你TimeTrigger的重複的Interval屬性拋出該異常,不FromSeconds。 – Clemens

+0

根據[this],似乎'Interval'屬性需要一個字符串值(https://msdn.microsoft.com/en-us/library/windows/desktop/aa382119(v = vs.85).aspx ) – Pikoh

+0

請參見[RepetitionPattern.Interval](https://msdn.microsoft.com/en-us/library/windows/desktop/aa382119(v = vs.85).aspx):「...允許的最短時間爲1分鐘。」 – Clemens

回答

1

另一種方法是:

// set interval of 3 seconds/3000 msec 
System.Timers.Timer timer = new System.Timers.Timer(3000); 

bool stopTimer = false; 

private void Window_Loaded(object sender, RoutedEventArgs e) 
{ 
    // the timer will restart automatically 
    timer.AutoReset = true; 

    // register the event 
    timer.Elapsed += Timer_Elapsed; 

    // start the timer 
    timer.Start(); 

} 

private void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) 
{ 
    // execute method here 

    // check whether timer can be stopped 
    System.Timers.Timer t = sender as System.Timers.Timer; 
    if (stopTimer) 
    { 
     t.AutoReset = false; 
    } 
} 
+0

感謝這一點,但如何使用此與'MainWindow()'? –

+0

@ user6689472「我想在我的系統啓動後每3秒觸發一次我的方法。」你想觸發哪種方法?我會建議使用'Loaded'事件來設置和啓動計時器。我編輯了我的答案。 –

+0

@ user6689472哦,我完全忘了啓動計時器..我的錯誤。只需在編輯中添加'timer.Start();' –

相關問題