2011-05-09 4 views
1

"7z.exe"를 사용하여 응용 프로그램 (C#)에서 추가 작업을하고 있습니다. "7z.exe"를 응용 프로그램의 기본 실행 파일에 포함 시켰습니다. 리소스 파일로. 응용 프로그램을 실행하는 동안 하드 디스크에 "7z.exe"를 추출하고 Process.Start()를 통해 실행합니다.Process.Start()를 통해 여러 스레드에서 실행 시작

"7z.exe"를 여러 번 실행하고 여러 스레드에서 실행해야합니다. 여러 스레드에서 동일한 "7z.exe"파일에 액세스하는 것이 안전합니까? 또는 각 프로세스에 대해 별도의 "7z.exe"(하드 디스크의 다른 위치로)를 추출해야합니다. 시작()

추신 : 7z.exe는 c/C++로 작성된 Seven-zip 소프트웨어에 속합니다.

+0

아래의 Jon 's 답변 외에도 실행 파일을 리소스로 응용 프로그램에 포함시킨 다음 나중에 추출하는 것이 올바른 방법은 아닙니다. 특히, 바이러스 스캐너를 작동시킬 가능성이 있습니다. C# (예 : SharpZipLib)과 함께 사용하도록 설계된 ZIP 라이브러리를 사용하면 * 더 나은 옵션입니다. –

답변

3

그렇습니다. 동일한 실행 파일에서 여러 프로세스를 시작할 수 있습니다. 프로세스가이를 방지하기 위해 아무런 조치도 취하지 않는다고 가정하면 (가능합니다 - 7-zip을 확인해야합니다). SharpZipLib과 같은 zip 라이브러리를 사용하여 원하는 것을 확실히 할 수 없습니까?

+0

SharpZipLib에서 "7z.dll"을 포함해야합니다. SharpZipLib를 사용하면 장점이 있습니다. 여전히 7z.dll을 추출해야합니다. – BitsnBytes

+0

@BitsnBytes : SharpZipLib에서 7z.dll을 사용합니까? 나는 그 사실을 몰랐다. 그러나 이점은 여러 프로세스를 시작하는 것보다 단일 프로세스 내에서 코드를 관리하는 것이 더 쉽다는 것입니다. –

+0

을 고려하면 7z.exe는 여러 스레드의 동시 호출을 허용합니다. 7z.exe가 잠기지 않고 앞으로의 스레드에서 실행되도록 허용 할 수 있습니까? – BitsnBytes

0

예, 다른 프로세스/스레드에서 동일한 exe 파일을 실행하는 것이 안전합니다.

관련 문제