Comment empêcher un ne Répond Pas de message sur une fenêtre de la barre de titre?
- Je utiliser VS2010 et C# pour créer une application de bureau. Cette application a une forme avec une énorme tâche qui prend beaucoup de temps. Lorsque ce formulaire est initialisé, il fonctionne parfaitement, sauf qu'il montre “ne Répond Pas” sur la barre de titre, comme le montre l'image:
Après avoir terminé toutes les tâches, il montre la sortie souhaitée. Pourquoi est-ce le message, et comment puis-je l'empêcher?
Je upvoted parce que c'est une question légitime pour quelqu'un qui n'a pas beaucoup d'expérience.
OriginalL'auteur shamim | 2012-06-14
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser un composant BackgroundWorker pour la fastidieuse tâche sera exécutée dans un thread séparé de manière asynchrone. Qui permettra à Windows de multitâche pour rendre l'INTERFACE plus réactive. Vous devez utiliser un curseur d'attente ou de quelque autre indicateur visuel de laisser l'utilisateur de savoir que votre application est en train de.
À partir de MSDN MSDN BackgroundWorker
OriginalL'auteur Abraham
Vous avez besoin pour exécuter votre tâche énorme sur un thread d'arrière-plan afin de ne pas verrouiller l'INTERFACE utilisateur (principale) de thread.
Je suggère de faire quelques recherches sur la classe Backgroundworker et l'exécution de vos processus. Prévenir l'INTERFACE utilisateur du gel pendant l'attente de votre opération longue à exécuter pour terminer. Cela est dû au "travail" en cours d'exécution sur un autre thread de l'INTERFACE utilisateur pour que l'INTERFACE utilisateur des événements (peinture, rafraîchissement, etc) ne sont pas bloqués.
OriginalL'auteur BlackSpy