2010-08-05 49 views
0

我有一個對象正在通過2個事件simulataneously訪問。「由另一個進程使用」錯誤

首先,用戶定義的事件將訪問它,然後projectItemsEvent_ItemAdded事件再次打開它。

並得到此錯誤「進程無法訪問文件,因爲它正在被另一個進程使用。」

請幫忙!

感謝

代碼示例:

void ProjectItemEvents_ItemAdded() 
{ 
    Util util = new Util(_applicationObject.Solution, CurrentSelectedProject) 

    if (name != null) 
    { 
    util.AddNewObject(); 
    } 
} 

void addItem(object sender, WebReferenceEventArgs e) 
{ 
    try 
    { 
    System.Threading.Thread.Sleep(4500); 
    Util util = new Util(_applicationObject.Solution, CurrentSelectedProject) 
    util.AddNewObject(); 
    } 
    catch (Exception ex) 
    { 
    } 
} 
+0

該問題位於您無法看到的代碼中。您需要任何實施您使用的圖書館的人的幫助。 – 2010-08-05 15:58:21

回答

2

這聽起來好像你在這兩個事件處理程序的打開一個文件(很難說肯定沒有代碼示例)。

如果您只是閱讀文件(而不是修改/覆蓋文件),則可以打開它以進行共享訪問,並允許多個進程打開相同的文件。

FileInfo fi = new FileInfo(@"C:\someFile.txt"); 
FileStream fs = fi.Open(FileMode.Open, FileAccess.Read, FileShare.Read); 

如果您發佈了一些代碼片段,我們可能會幫助您將更改整合到您已有的內容中。

UPDATE

看你的代碼後,我的猜測是,有是Util類中的一個文件接取的問題。你也可以發佈它的構造函數嗎?

+0

UPDATE: 我希望這是不夠的: 公共類的Util { 公衆的Util(解決方案,工程項目) { /**這裏的一些代碼**/ }} – 2010-08-05 14:01:17

+0

@little_gurl - 不,不幸的是這還不夠。那裏的代碼必須做某種文件訪問(直接或間接,這正是我想要弄清的)。 – 2010-08-05 14:02:51

0

你必須確保你讀完該文件後關閉的FileStream。

FileStream.Close();

相關問題