2010-10-06 11 views

risposta

11

È possibile inviare un'attività (utilizzando lo Dispatcher nel modo normale) con un DispatcherPriority di ApplicationIdle, che verrà eseguito solo quando l'applicazione è inattiva.

+0

ho messo il codice nel costruttore e ho notato che l'attività verrà viene eseguito immediatamente quando si fare doppio clic l'applicazione. Mi chiedo dove posso inserire il mio codice che verrà eseguito ogni volta che la mia applicazione non riceve alcun evento o il messaggio q è vuoto. –

+0

Se il codice è nel costruttore, è necessario inviare la creazione dell'oggetto (come sopra con la priorità ApplicationIdle) poiché il costruttore verrà sempre eseguito immediatamente alla creazione! Dispatcher.BeginInvoke (new Action (CreateMyObject), DispatcherPriority.ApplicationIdle); Qui CreateMyObject è un metodo che crea il tuo oggetto e Action è il delegato - può includere parametri, vedi: http://msdn.microsoft.com/en-us/library/018hxwa8.aspx – markmnl

0

Una risposta alternativa in ritardo (come promemoria per me):

System.Windows.Interop.ComponentDispatcher.ThreadIdle += (_, __) => 
{ 
    Debug.Print("Idle"); 
}; 
Problemi correlati