2010-05-21 2 views
2

Lorsque l'utilisateur enregistre des données, je souhaite supprimer un fil d'arrière-plan pour mettre à jour mes index et effectuer d'autres opérations aléatoires. Même s'il y a une erreur dans cette indexation, l'utilisateur ne peut rien faire à ce sujet, donc il ne sert à rien de forcer le thread principal à attendre que le thread d'arrière-plan se termine. Je le fais à partir d'un processus ASP.NET, donc je pense que je devrais être capable de le faire (car le thread principal qui sort ne va pas tuer le processus).Fil d'arrière-plan dans .NET

Lorsque je définis un point d'arrêt dans la méthode du thread d'arrière-plan, le thread principal semble également s'arrêter. Est-ce juste un artefact du débogueur de Visual Studio, ou est-ce que le thread principal ne va vraiment pas revenir jusqu'à ce que le thread d'arrière-plan s'arrête?

+0

Faites très attention en utilisant les threads dans ASP.NET. Le thread peut essayer d'exécuter une fois la requête terminée. À ce moment, la demande a disparu, la page a été supprimée, etc., et tout état dont vous dépendiez n'est plus valide. Cela peut aussi ne pas aider les performances. –

Répondre

3

Lorsque vous déboguez dans VS, les autres threads s'arrêteront également, mais pas toujours au même endroit.

+0

Et c'est par conception - vous ne voulez pas qu'un thread se déclenche et potentiellement changer l'état de l'application que vous essayez de déboguer. Notez également que vous pouvez geler/libérer manuellement les threads qui vous intéressent. –