Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# &引用;由另一个过程使用;错误_C# - Fatal编程技术网

C# &引用;由另一个过程使用;错误

C# &引用;由另一个过程使用;错误,c#,C#,我有一个对象同时被两个事件访问 首先,用户定义的事件将访问它,然后projectItemsEvent_ItemAdded事件将再次打开它 并出现以下错误:“进程无法访问该文件,因为它正被另一个进程使用。” 请帮忙 谢谢 代码示例: void ProjectItemEvents_ItemAdded() { Util util = new Util(_applicationObject.Solution, CurrentSelectedProject) if (name != null

我有一个对象同时被两个事件访问

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

听起来好像您正在两个事件处理程序中打开一个文件(没有代码示例很难说)

如果您只是在读取文件(而不是修改/覆盖文件),则可以打开该文件进行共享访问,并允许多个进程打开同一个文件

FileInfo fi = new FileInfo(@"C:\someFile.txt");
FileStream fs = fi.Open(FileMode.Open, FileAccess.Read, FileShare.Read);
如果您发布一些代码片段,我们可能会帮助您将更改集成到您已有的内容中

更新


查看代码后,我猜
Util
类内部存在文件访问问题。您还可以发布其构造函数吗?

如果无法避免事件冲突,您可能应该使用lock关键字


您必须确保在完成文件读取后关闭文件流


FileStream.Close()

更新:我希望这足够了:公共类Util{public-Util(解决方案,项目){/**这里的一些代码**/}@little_-gurl-不,不幸的是这还不够。那里的代码必须进行某种类型的文件访问(直接或间接,这是我试图弄清楚的)。问题在于代码中,您和我们都看不到。您需要实现您使用的库的人的帮助。