2011-05-09 52 views
1

我正在使用「7z.exe」在我的應用程序(c#)中做一些額外的工作,我在我的應用程序的主要可執行文件中嵌入了「7z.exe」作爲資源文件。在執行我的應用程序期間,我在硬盤上提取「7z.exe」並通過Process.Start()執行它。從多個線程通過Process.Start()啓動一個可執行文件()

我需要多次執行「7z.exe」並從多個線程中執行。 從多個線程訪問相同的「7z.exe」文件是否安全?或者我應該爲每個進程提取單獨的「7z.exe」(到硬盤上的不同位置)。開始()

PS:7z.exe屬於用c/C++編寫的Seven-zip軟件。

+0

除了Jon的回答之外,將可執行文件作爲資源嵌入到應用程序中,然後再提取*它們幾乎不是正確的方法。特別是,它可能會驅動病毒掃描程序的堅果。使用設計用於C#的ZIP庫(如SharpZipLib)是一個更好的選擇。 – 2011-05-09 12:12:54

回答

3

是的,你應該能夠從同一個可執行文件啓動多個進程 - 假設進程本身並沒有做任何事情來阻止它(這是可行的 - 你必須檢查7-zip)。你絕對不能使用zip庫,如SharpZipLib做你想做的事嗎?

+0

在SharpZipLib中,我仍然需要包含「7z.dll」。因此,使用SharpZipLib.I的優點還是要提取7z.dll。 – BitsnBytes 2011-05-09 12:24:20

+0

@BitsnBytes:SharpZipLib使用7z.dll嗎?我沒有意識到這一點。但優點是在單個進程中管理代碼比啓動多個進程更容易。 – 2011-05-09 12:25:15

+0

考慮到7z.exe允許來自多個線程的同時呼叫。我能否假設7z.exe永遠不會被鎖定,並且會允許從其他線程執行。 – BitsnBytes 2011-05-09 12:34:57

0

是的,從不同的進程/線程執行相同的exe文件是安全的。

相關問題