Erreur avec la commande show !!!
floflo55
Messages postés
221
Date d'inscription
Statut
Membre
Dernière intervention
-
floflo55 Messages postés 221 Date d'inscription Statut Membre Dernière intervention -
floflo55 Messages postés 221 Date d'inscription Statut Membre Dernière intervention -
Bonjours a tous, j'ai fait un code qui vérifie les mise a jour, le voici:
Tous marche bien mais au moment ou il arrive a la commande " form3.show "
Il me dit qu'il y a eu une erreur et refuse de l'afficher et me dit ca :
Opération inter-threads non valide : le contrôle 'Form1' a fait l'objet d'un accès à partir d'un thread autre que celui sur lequel il a été créé.
Merci de m'aider ca fait un mois que je cherche !!!
Un IMMENSE merci d'avance ;)
PS: j'utilise visual basic 2010 express
Private Sub Form1_load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Dim response As HttpWebResponse = Nothing Dim sr As StreamReader = Nothing Try Dim request As HttpWebRequest = CType(WebRequest.Create("https://www.123.fr/acces.html"), HttpWebRequest) response = CType(request.GetResponse, HttpWebResponse) sr = New StreamReader(response.GetResponseStream) If sr.ReadToEnd <> Me.ProductVersion Then form3.show Else End If Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical) Finally If Not (response Is Nothing) Then response.Close() End If If Not (sr Is Nothing) Then sr.Close() End If End Try End Sub
Tous marche bien mais au moment ou il arrive a la commande " form3.show "
Il me dit qu'il y a eu une erreur et refuse de l'afficher et me dit ca :
Opération inter-threads non valide : le contrôle 'Form1' a fait l'objet d'un accès à partir d'un thread autre que celui sur lequel il a été créé.
Merci de m'aider ca fait un mois que je cherche !!!
Un IMMENSE merci d'avance ;)
PS: j'utilise visual basic 2010 express
A voir également:
- Erreur avec la commande show !!!
- Usb show - Télécharger - Sauvegarde
- Invite de commande - Guide
- Commande terminal mac - Guide
- Show key plus - Télécharger - Utilitaires
- Commande dism - Guide
2 réponses
Le .NET, surtout le VisualBasic.net et ses Form en "Shared", "static" en C#, est assez casse-noix avec les threads.
Comme le threading est un peu dur à manipuler pour un débutant, ajoute la propriété
Il ne devrait plus se plaindre (en revanche il ne faut jamais faire ça dans un environnement de production, il faut absolument rendre les opérations thread-safe).
Le Visual Basic c'est bien, mais qu'au début. C++ wins everything.
Comme le threading est un peu dur à manipuler pour un débutant, ajoute la propriété
CheckForIllegalCrossThreadCalls = Falseà form3.
Il ne devrait plus se plaindre (en revanche il ne faut jamais faire ça dans un environnement de production, il faut absolument rendre les opérations thread-safe).
Le Visual Basic c'est bien, mais qu'au début. C++ wins everything.
(Je me corrige de ma version "pas thead-safe donc pas bien").
A chaque fois que tu rencontres ce problème, il faut remplacer
(Je fais plus de VB.NET donc je ne peux pas savoir si ça marchera a 100% et du premier coup)
A chaque fois que tu rencontres ce problème, il faut remplacer
form3.showpar
If form3.InvokeRequired Then form3.BeginInvoke(New EventHandler(AddressOf form3.show)) Else form3.show End IfEt bien-sur adapter form3 et form3.show selon l'objet et la fonction voulue.
(Je fais plus de VB.NET donc je ne peux pas savoir si ça marchera a 100% et du premier coup)
Super sa marche !!! Mille fois merci :)
Mais maintenant j'ai un nouveau code qui ne marche pas, tu as une solution ???
C'est pour prendre une photo
Il me dit:
Opération inter-threads non valide : le contrôle 'WebBrowser1' a fait l'objet d'un accès à partir d'un thread autre que celui sur lequel il a été créé.
Merci d'avance :)
Désoler pour toutes ces questions
Mais maintenant j'ai un nouveau code qui ne marche pas, tu as une solution ???
Dim TargetImg As New System.Drawing.Bitmap(WebBrowser1.Size.Width, WebBrowser1.Size.Height) WebBrowser1.DrawToBitmap(TargetImg, New System.Drawing.Rectangle(0, 0, MyBase.Size.Width, MyBase.Size.Height))
C'est pour prendre une photo
Il me dit:
Opération inter-threads non valide : le contrôle 'WebBrowser1' a fait l'objet d'un accès à partir d'un thread autre que celui sur lequel il a été créé.
Merci d'avance :)
Désoler pour toutes ces questions
Merci d'avance
Autrement il est possible de le mettre à la main dans le fichier form3.Designer.vb (accessible via l'explorateur de fichiers de VisualStudio/VisualBasicExpress si je me souviens bien).