C# &引用;由另一个过程使用;错误
我有一个对象同时被两个事件访问 首先,用户定义的事件将访问它,然后projectItemsEvent_ItemAdded事件将再次打开它 并出现以下错误:“进程无法访问该文件,因为它正被另一个进程使用。” 请帮忙 谢谢 代码示例:C# &引用;由另一个过程使用;错误,c#,C#,我有一个对象同时被两个事件访问 首先,用户定义的事件将访问它,然后projectItemsEvent_ItemAdded事件将再次打开它 并出现以下错误:“进程无法访问该文件,因为它正被另一个进程使用。” 请帮忙 谢谢 代码示例: void ProjectItemEvents_ItemAdded() { Util util = new Util(_applicationObject.Solution, CurrentSelectedProject) if (name != null
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-不,不幸的是这还不够。那里的代码必须进行某种类型的文件访问(直接或间接,这是我试图弄清楚的)。问题在于代码中,您和我们都看不到。您需要实现您使用的库的人的帮助。