프로그램에서 스레드 ("작업 스레드")에 걸쳐 있습니다. 헤라 나는 일부 파일을 데이터베이스에 복사하고 결국에는 다른 파일이나 디렉토리를 삭제합니다. 모든 것이 잘 작동합니다. 이제 문제는 삭제 작업을 다른 스레드로 옮기기로 결정한 것입니다. 따라서 작업 스레드는 파일이나 디렉토리를 복사하고 데이터베이스에 쓰고 다른 파일을 삭제해야 할 경우이 스레드가 다른 스레드에 스팬하고 두 번째 스레드가 필요한 파일이나 디렉토리를 삭제합니다.다른 스레드에서 액세스가 거부되었습니다.
문제는 작업 스레드에서 작업이 완료되었을 때 100 % 작업이 삭제 된 것입니다. 이제는 보조 스레드에서 동일한 작업이 수행 될 때 가끔에 "액세스가 거부되었습니다"라는 오류 메시지가 표시 될 수 있습니다. 삭제됨 그리고 아니요, 작업중인 스레드는 현재 파일과 디렉토리에이 순간에 삭제하지 않기로 동의합니다.
때로는 (항상 그런 것은 아니지만) 주 스레드가 일부 사용자를 가장하려고하므로 필요할 경우 삭제 스레드가 파일을 삭제하는 데 필요한 권한을 부여하기 위해 가장 아래에서 실행되므로 문제가되지 않아야합니다.
왜 이런 일이 일어날 수 있는지 실마리가 있습니까?
바이러스 백신을 실행하고 있습니까? 때로는 파일을 추가, 변경 및 삭제할 때 방해가됩니다. 내 전체 개발 폴더 트리를 안티 바이러스 소프트웨어의 신뢰할 수있는 영역에 추가하는 경향이 있으며 문제를 완화하는 것으로 보입니다. –
가장은 현재 스레드 전용이므로 주에서 가장하는 경우 작업자 스레드에서 가장하지 않습니다. – Remko
그래, 그게 내가 말한 이유는 : 필요하다면, 삭제 스레드는 또한 가장 밑에서 실행된다. 즉, 다시 사칭한다. – Lobuno