Lorsque la fenêtre initialise un thread de travail d'arrière-plan (BackgroundWorker), il est essentiel de l'annuler correctement lorsque la fenêtre est fermée. Sinon, cela peut provoquer une anormale ou mortelle.
Description du problème
Une fenêtre a instancié un backgroundworker et a mis à jour sa zone de texte sur le thread principal. Lorsque l'événement de clôture de la fenêtre est déclenché, le fond de fond sera simplement annulé et le objetDisposexception est anormal sur l'appel inférieur (). Au lieu de cela, attendre que Backgroundworker se termine dans l'incident de clôture provoquera des verrous morts car l'opération invoquée () est bloquée.
Solution
Afin de résoudre ce problème, si BackgroundWorker est toujours en cours d'exécution, l'événement FormClosing doit être annulé. Cela peut être mis en œuvre via les étapes suivantes:
Traitez l'événement OnformClosing dans la fenêtre.Vérifiez si le fond de fond est occupé, si c'est le cas, annulez-le.
Grâce à cette méthode, la fenêtre peut être désactivée sans cause de serrures anormales ou mortes, afin d'assurer l'élégance du fond.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!