bonjour,
j'ai fait le code suivant (un peu simplifié):
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
 
Sub Main()
        Dim cc As New CompressClass
For index1 As Integer = 0 To 9
                For index As Integer = 0 To 9
                    Dim pathtemp As String = "img" & index1 & index
                         pathimg.Add(pathtemp)                
                            Dim data As ThreadDataCompress
                            data = New ThreadDataCompress(pathimg)
                            ThreadPool.QueueUserWorkItem(AddressOf cc.compress, 
data)
end sub
Public Class ThreadDataCompress
    Public _sourceDir As List(Of String)
    Sub New(ByVal sd As List(Of String)
 
        _sourceDir = sd
     End Sub
 
End Class
 
Public Class CompressClass
    Public Shared nbrethread As Integer
    Sub compress(ByVal ob As Object)
        Interlocked.Increment(nbrethread)
        Dim ddata As ThreadDataCompress = DirectCast(ob, ThreadDataCompress)
        For Each dir As String In ddata._sourceDir
           Console.WriteLine(dir)
        Next
End Sub
End Class
le problème et que l'enumeration de ma list ddata._sourceDir plante car ma variable est changé en cours de lecture.
j'en déduis qu'un de mes thread écrit sur mes vaariables alors que j'intencie ThreadDataCompress avant chaque appelle d'un thread ils devraient travailler idépendament sur des instances différentes?

s'il vous plait aidez-moi!!