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
merci et bonne journée
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
Partager