Bonjour,
Je suis actuellement en train de développer une application en VB relier à un serveur SQL local (pour l'instant).
Pour optimiser le démarrage de l'appli je créer une tâche parallèle pour charger les données dans la datatable. Jusque là pas de soucis.
Par la suite j'ai voulu créer une textbox pour en en faire une sorte de console informant l'utilisateur de ce qui se passe. C'est là ou ça ce complique, l'application plante à chaque fois que je veux remplir ma textbox.

voici le morceau de code que j'utilise :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
    Private Sub W_Shown(sender As Object, e As EventArgs) Handles Me.Shown
 
        Dim LoadSql As New Task(Sub() SQL_LOAD(MSGAVT))
        'Charge les données dans la table 'EntManager_BaseProdDataSet._BaseProd_'             
        LoadSql.Start()
 
    End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
    '----------------------------------------------------------------------------------------------------
    'CHARGEMENT BASE DE DONNEES
    '----------------------------------------------------------------------------------------------------
    Sub SQL_LOAD(Text As TextBox)
 
        Text.Text = "Console >_ Chargement de la base de donnée"
        Me.BaseProd_TableAdapter.Fill(Me.EntManager_BaseProdDataSet._BaseProd_)
        Text.Text = "Console >_ Base de données chargé"
        Threading.Thread.Sleep(2000)
        Text.Text = "Console >_ "
 
    End Sub
J'ai fait plusieurs recherche sans beaucoup de succès je n'arrive pas à localiser mon problème. J'ai trouvé sur msdn pas mal de sujet qui mon le plus souvent perdu, dont le suivant ou je ne vois pas la différence entre les deux code qu'ils présentent :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
' This event handler creates a thread that calls a 
   ' Windows Forms control in an unsafe way.
    Private Sub setTextUnsafeBtn_Click( ByVal sender As Object, ByVal e As EventArgs) Handles setTextUnsafeBtn.Click
 
        Me.demoThread = New Thread( New ThreadStart(AddressOf Me.ThreadProcUnsafe))
 
        Me.demoThread.Start()
    End Sub
 
 
   ' This method is executed on the worker thread and makes
   ' an unsafe call on the TextBox control.
   Private Sub ThreadProcUnsafe()
      Me.textBox1.Text = "This text was set unsafely."
   End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
' This event handler creates a thread that calls a 
   ' Windows Forms control in a thread-safe way.
    Private Sub setTextSafeBtn_Click( ByVal sender As Object, ByVal e As EventArgs) Handles setTextSafeBtn.Click
 
        Me.demoThread = New Thread( New ThreadStart(AddressOf Me.ThreadProcSafe))
 
        Me.demoThread.Start()
    End Sub
 
 
   ' This method is executed on the worker thread and makes
   ' a thread-safe call on the TextBox control.
   Private Sub ThreadProcSafe()
      Me.SetText("This text was set safely.")
    End Sub
Une idée ?