2011-01-07 24 views
5

L'ordine degli eventi di Silverlight Dispatcher è rigorosamente preservato?Ordine code evento di Silverlight Dispatcher

Per elaborare: se ho esattamente un altro thread che chiama Dispatcher.BeginInvoke, è garantito che tali chiamate verranno elaborate sul thread dell'interfaccia utente nello stesso ordine oppure l'ordine non è deterministico?

+0

È divertente, questa domanda esatta è stata posta prima e recentemente ma non riesco a trovarla ora. È stata data la stessa risposta esatta. – AnthonyWJones

risposta

6

Da MSDN:

Se le chiamate BeginInvoke multipli sono fatte Allo stesso DispatcherPriority, essi verrà eseguito nell'ordine i chiamate sono state fatte.

quindi, sì, se lo stesso thread fa la coda ai messaggi, verranno eseguiti nell'ordine in cui sono in coda. Ciò presuppone che Silverlight segua le stesse regole (presumo che lo faccia ma non include un accessibile DispatcherPriority) e i documenti MSDN per Silverlight BeginInvoke sono piuttosto leggeri.