À l'aide de fil à la forme ouverte
Je suis actuellement étudiant VB.NET et j'ai eu la question sur l'utilisation de thread pour ouvrir le formulaire.
Par exemple, lorsque je clique sur le bouton ouvrir, puis sculpture de bande de roulement de lancer et d'ouvrir un autre formulaire pour l'ajout ou la modification de données.
Donc, j'ai essayé de mettre en œuvre la présente partie comme
Private Sub menu_Click(sender As Object, e As EventArgs) Handles menu.Click
Dim A As System.Threading.Thread = New Threading.Thread(AddressOf Task_A)
A.Start()
End Sub
Public Sub Task_A()
frmBuild.Show()
End Sub
Cependant, j'obtiens l'erreur d'ouvrir la frmBuild
par thread. Dois-je utiliser une autre méthode pour ouvrir le formulaire?
Et, Comment peut-on tuer le thread quand fromBuild ferme?
Vous devez vous connecter pour publier un commentaire.
C'est presque toujours une mauvaise idée. Vous ne devriez pas essayer d'utiliser un thread séparé pour ouvrir un
Form
- au lieu de cela, ouvrez tous vos formulaires sur le main thread d'INTERFACE utilisateur, et de déplacer le "travail" qui serait sinon bloquer sur les threads d'arrière-plan.BackgroundWorker
est un moyen de manipulation à l'œuvre.Cela étant dit, si vous avez besoin de faire cela pour des raisons exceptionnelles, vous devez faire deux choses.
Tout d'abord, vous devez définir l'appartement de l'état de ce thread. Vous devez également utiliser
Application.Run
pour afficher le formulaire, et que le formulaire doit être créé sur le bon thread:Afin de fermer le Formulaire de l'autre fil, vous pouvez utiliser:
Le thread s'arrête automatiquement lorsque le formulaire est fermé, si c'est écrit comme indiqué ci-dessus.