“由另一个进程使用”错误

时间:2010-08-05 13:37:25

标签: c#

我有一个同时被2个事件访问的对象。

首先,用户定义的事件将访问它,然后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)
  {
  }
}

3 个答案:

答案 0 :(得分:2)

听起来你正在两个事件处理程序中打开一个文件(如果没有代码示例,很难说)。

如果您只是阅读文件(而不是修改/覆盖它),您可以将其打开以进行共享访问,并允许多个进程打开相同的文件。

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

如果您发布了一些代码段,我们可能会帮助您将更改集成到您已有的内容中。

<强>更新

查看代码后,我的猜测是Util类内部存在文件访问问题。你也可以发布它的构造函数吗?

答案 1 :(得分:0)

答案 2 :(得分:0)

您必须确保在读完文件后关闭FileStream。

FileStream.Close();

相关问题