C# 다중 스레드 응용 프로그램이 있는데 두 개의 다른 스레드가 데이터 파일을 쓰는 루틴을 호출 할 때 간단한 문제가 발생했습니다. 이 루틴에서 파일의 코드가 모든 VBNET.FileSystem 호출을 사용하여 즉,이 Microsoft 오류 메시지의 문구
VBNET.FileSystem.FreeFile()
...
VBNET.FileSystem.FileOpen(...)
...
했다 그래서이 프로그램은 고대 VB 프로그램부터 전환했다VBNET.FileSystem.WriteLine(...)
...
VBNET.FileSystem.FileClose(...)
예외는 말했다 (독점 물건 난독 화와 함께 ...)
"파일에 액세스 할 수 없습니다 과정 'C를 : \ XXXX \ YYYY \ zzz.txt'는 다른 프로세스에서 사용하고 있기 때문에"
스레드 안전성으로 해결하기는 쉽지만, 궁금한 점은 예외이 입니다. 이유 과정? 문제는 프로세스 문제가 아닌 스레딩 문제 였고 루틴을 중요한 섹션으로 수정하여 문제를 해결했습니다. VBNET 파일 I-O 작업은 별도의 프로세스를 생성합니까?
프로세스 == 스레드 – paqogomez
완전히 분리 된 프로세스라면 작업 관리자에서 볼 수 있습니다 ... –
@paqogomez 용어는 동일하지 않습니다. 모든 프로세스에는 최소한 하나의 스레드가 있지만 모든 스레드가 프로세스가 아닙니다. 프로세스는 많은 스레드를 포함 할 수 있습니다. – AaronLS