2011-02-17 166 views

回答

3

我認爲這將是。 (因爲這樣的窗口或用戶控件)

在DispatcherObject的:

this.Dispatcher.BeginInvoke(new Action(() => SomeMethod()), DispatcherPriority.ApplicationIdle); 
+2

這將是一次性操作。 Windows窗體中的OnIdle被重複調用... –

+0

我可以忍受這一點。 – user380719

+0

-1一次性方法調用不是一種連續的方式來處理「空閒」 – MickyD

0

這是我如何做XAML空閒處理

DispatcherTimer timerIdle; 
    private void OnLoaded(object sender, RoutedEventArgs e) 
    { 
     //Create our idle timer. 
     timerIdle = new DispatcherTimer 
      (
      TimeSpan.FromMinutes(1), 
      DispatcherPriority.ApplicationIdle, 
      (s, b) => { 
       timerIdle.Stop(); 
       *************SOME FUNCTION HERE***************** 
      }, 
      Application.Current.Dispatcher 
      ); 

     //Start the timer here 
     timerIdle.Start(); 
    } 

    private void OnMouseMove(object sender, MouseEventArgs e) 
    { 
     if(!timerIdle.IsEnabled) 
      timerIdle.Start(); 
    }