2010-12-21 3 views
10

Si j'appelleWPF Dispatcher BeginInvoke commande garantie

Dispatcher.BeginInvoke(operation, DispatcherPriority.Loaded) 

1.000.000 fois de plus de 20 fils de discussion, sont les opérations 1.000.000 guranteed être exécuté par le thread d'interface utilisateur dans l'ordre les appels BeginInvoke ont été faites?

+0

Avez-vous l'essayer? Qu'est-il arrivé? – AnthonyWJones

+0

Il semble que l'opération soit un délégué quelconque. Pourriez-vous juste utiliser une file d'attente et avoir seulement un processus les invoquant réellement? –

+0

J'ai besoin que les délégués soient exécutés sur le fil de l'interface utilisateur. –

Répondre

4
+0

@BrokenGlass: comment cela pourrait-il être? 'Dispatcher' gère un seul thread. Si une opération démarre sur ce thread, elle sera exécutée jusqu'à la fin avant qu'une autre opération ne soit lancée. Ou est-ce que je manque quelque chose? –

+0

Je suppose que j'aurais dû regarder le doc BeginInvoke. :) –

+0

vous avez raison, aurait dû lire de plus près ;-) – BrokenGlass