Bonjour,

En résumer voila mon problème

j'ai un form mdi container ... dans mon mdi parent je charge mon dataset, dans mon mdienfant je cherche à faire des modifications. Lorsque je travail sans multithread j'ai pas de problème, mais lorsque je passe en multithread je suis incappable de lire le dataset.

merci de votre soutiens

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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
Sub MAJ(ByVal Str As String)
        Dim Dir2 As New DirectoryInfo(Str)
        Console.WriteLine(Dir2.Name)
 
        Dim Fl() As String = Directory.GetFiles(Dir2.FullName & "\MiseAJour\")
        QuSymb = New Queue
        If Fl.Count > 4000 Then
            For Each itFl As String In Fl
                Dim FlInfo As New FileInfo(itFl)
                QuSymb.Enqueue(FlInfo.FullName)
                'Console.WriteLine(FlInfo.FullName)
            Next
 
*****Avant de démarrer les thread je lit les infos de mon dataset sans problème *****************
 
            Console.WriteLine(MDIPar._Ds.Tables.Count)
            For Each tb As DataTable In MDIPar._Ds.Tables
                Console.WriteLine("Ici  " & tb.TableName)
            Next
*************************************************************
            For i = 0 To NbrThread
                Dim T As New Threading.Thread(AddressOf DoTheTask2)
                T.Name = "Threads#" & i.ToString
                T.Start()
            Next
        End If
        Console.WriteLine(QuSymb.Count.ToString)
        'QuSymb = Nothing
 
 
Sub DoTheTask2()
*************ic ça fonctionne plus *********************
        SyncLock MDIPar._Ds
            Console.WriteLine(MDIPar._Ds.Tables.Count)
            For Each tb As DataTable In MDIPar._Ds.Tables
                Console.WriteLine("Ici  " & tb.TableName)
            Next
        End SyncLock
...etc.
    End Sub
merci et bonne journée