我的情况是我有以下方法,它使用 SyncLock 来确保一次一个线程写入文件。
Private Shared lockThis As New Object
Public Sub Process()
SyncLock lockThis
File.AppendAllText("c:\jamo\foo.txt","foo")
End SyncLock
End Sub
我正在使用同时运行的许多线程:
Public Sub CreateThreads()
Dim trd as Thread
Dim X as Integer = 10
For i as integer = 1 to X
trd = New Thread(AddressOf Process)
trd.Start()
Next Sub
End Sub
我的问题是当 X 很大时(比如 500),一个或多个线程同时写入文件。为什么会这样?