Je suis un peu rouillé pour Visual Basic, mais je dois l'utiliser pour un projet sur lequel je travaille qui nécessite un langage .NET.Visual Basic Mise à jour de l'interface utilisateur graphique .text propriété sur le thread d'arrière-plan
j'ai remarqué lors de l'écriture un peu de code pour mettre à jour la valeur de texte d'une zone de texte dans une application fourm windows
'weve read the stuff...now lets update the textbox with the ADC value
DataQSingleDevice.GetInterleavedBinaryData(BinaryData, 0, 18)
DataQSingleDevice.Stop()
DATAQHandler(0).Disconnect()
'now lets throw data in the textbox
Button1.Text = "Connected!"
For incramenter As Integer = 0 To 10
TextBox1.Text = BinaryData(incramenter)
Threading.Thread.Sleep(2000)
Next
end sub
que quand je passe par cette boucle au-dessus de moi, il ne met pas à jour le texte valeur à chaque itération. Je suppose que cela signifie qu'il ne peut le faire qu'après que la méthode que ce sous est dans a fini. Je me souviens de la programmation Android en Java que les modifications de propriétés comme celle-ci sont généralement implémentées sur le thread d'interface principal enfoui dans une boucle infinie que seul GOD lui-même et l'inventeur du langage java pourraient espérer trouver. Je me souviens aussi que des méthodes comme AsyncTask <> et Java.util.concurrent m'ont permis de faire des choses sur un thread d'arrière-plan et de mettre à jour certaines vues.
My question:
Est-il possible de mettre à jour la propriété des choses dans Visualbasic sur une interface graphique telle que « TextBox1.Text » semblable à la façon dont certaines vues dans la programmation Android peuvent être mis à jour périodiquement avec des fils de fond? (Ce processus peut durer quelques minutes de mise à jour ... cet exemple ne dure que 20 secondes mais mon utilisation pratique peut durer 10 minutes)
Si cela est exécuté dans un thread d'arrière-plan, vous devrez appeler BeginInvoke pour forcer la mise à jour à se produire sur le thread d'interface utilisateur. – dwilliss