2010-12-08 19 views
1

J'ai une application Windows Phone 7 qui utilise le Dispatcher pour m'assurer que le code s'exécute sur le thread de l'interface utilisateur, mais parfois j'ai besoin de savoir quel thread a été la méthode appelé.Détecter si le code s'exécute sur le thread d'arrière-plan ou le thread UI (Dispatcher)

Comment puis-je détecter si une méthode est appelée à partir du thread d'interface utilisateur ou d'un thread d'arrière-plan? Dans Silverlight vous utiliseriez Dispatcher.CheckAccess, mais ce n'est pas disponible sur Windows Phone 7.

+0

est ici une classe utilitaire utile si quelqu'un d'autre a besoin de détecter les sujets de fond/premier plan entre autres: http://silverlightzxing.codeplex.com/SourceControl/changeset/view/3bd7fb2d5eb2#WP7_Barcode_Library%2fOther%2fWP7Utilities.cs –

Répondre

4

CheckAccess est là, il ne s'affiche pas dans intellisense. Codez-le et vous verrez qu'il compile/fonctionne.

+0

bien Pouvez-vous regarder ça! Je me demande pourquoi cela n'apparaît pas dans intellisense ou dans le navigateur Object. Merci! –

+1

Vous pouvez également obtenir et définir des noms de thread à l'aide de System.Threading.Thread.CurrentThread.Name. Personnellement, je nomme des threads importants pour faciliter le débogage. –