2009-09-24 46 views
0

我開發一個多線程的ASP.NET 3.5應用程序,其中一些文件上工作時,我發現了以下異常:如何知道哪些進程正在使用ASP.NET下的文件?

,因爲它正由另一個進程無法訪問該文件 進程

我正在尋找一種方法來確切地知道哪個進程正在鎖定該文件,以便我可以停止其對該文件的訪問。或者如果這很複雜,我想通過我的線程鎖定文件,以便其他線程/進程無法訪問它。謝謝。

回答

0

要真正鎖定對資源的訪問(您建議的第二個選項),您可以使用Mutex(互斥)。

我沒有在.NET中做過任何這樣的事情,但似乎有good articles就可以了。

1

Process Explorer可以讓你做到這一點。只需單擊「查找」 - >「查找句柄或DLL」,然後輸入文件的名稱。

然後,它會向您顯示每個進程以及該文件的句柄。

+0

+1 Proc Explorer - 一個非常有用的。 – 2009-09-24 10:46:37

+0

已經嘗試過,但那個未知的過程在很短的時間內使用了這個文件,所以我沒有抓住它的運氣! – 2009-09-24 10:48:07

+0

嗯 - 在這種情況下,我可能會開始向我的應用程序添加文件打開日誌記錄,以嘗試跟蹤哪個線程正在打開它。我確信一會兒會有人告訴你使用互斥鎖或其他方法的好方法。 – 2009-09-24 10:51:09

相關問題