스레드 + b (두 파일을 모두 삭제하려고합니다). 이 먼저 호출되면 b이 아직 실행 중입니다. 은 파일을 성공적으로 삭제하지만 은입니다.동시 스레드는 한 번에 하나만 작동하는 것처럼 보입니까?
을 단독으로 실행하면 의 파일이 정상적으로 삭제됩니다.
내가 코드를 단계별로 때 나는의의 MultiAttemptFilename이 B로 덮어 쓰기됩니다 '의 것을 볼 수 있습니다.
나는 이해할 수 없다.
파일 이름을 전달하는 일반 핸들러를 가리키는 ajax 호출이 있습니다. 내 처리기에서 나는 다음과 같은 코드를 가지고 그들이하지 않는
#Region "Delete"
Public MulitAttemptFilename As String = ""
Public Sub DeleteFileMulitAttempt()
Dim TimeBetweenAttempts As Integer = 2000
Dim NumberOfAttempts As Integer = 60
Dim AttemptNumber As Integer = 0
Dim Success As Boolean = False
While (AttemptNumber < NumberOfAttempts)
Try
Success = (DeleteFile(MulitAttemptFilename) = "Ok")
Catch ex As Exception
Success = False
End Try
If (Success) Then Exit While
Thread.Sleep(TimeBetweenAttempts)
AttemptNumber += 1
End While
End If
End Sub
...
이 취소 처리 할 수 있습니다/업로드 실패 : 내 '문서'클래스에서
Dim Dc As New Document
Dim MyThread As New Thread(AddressOf Dc.DeleteFileMulitAttempt)
Dc.MulitAttemptFilename = Filename
MyThread.Start()
을 나는이 다음 전화 했어 항상 즉시 삭제 (서버 잠금 등), 따라서 루프.
여기에 근본적인 것이 없습니까?
감사합니다. Tod. 나는 Synclock을 가지고 놀고 있었지만 기사를 읽었을 때 나는 스레딩을 제대로 읽을 시간이있을 때까지 이것을 부업으로 생각하고있다. 건배 – Oppdal