两次访问相同资源的C#异常

时间:2010-06-20 17:22:15

标签: c#-3.0

使用Windows窗体并在按钮单击处理程序中调用WordNet API:

frmWordnetAPI relatedWords = new frmWordnetAPI ();
        relatedWords.ShowDialog();

此API从源文件目录中获取一些数据。

编译程序时,在第一个按钮上单击表单正在加载完美,但是当我关闭API并再次单击该按钮加载它时会抛出异常说:

The process cannot access the file 'D:\MIT\project\wordnet API\TestApplication\WNdb-3.0\dict\index.adj' because it is being used by another process.

以下代码抛出异常:

BinarySearchTextStream searchStream = new BinarySearchTextStream(indexPath, new BinarySearchTextStream.SearchComparisonDelegate(delegate(string searchWord, string currentLine)
                        {
                            // if we landed on the header text, search further down
                            if (currentLine[0] == ' ')
                                return 1;

                            string currentWord = currentLine.Substring(0, currentLine.IndexOf(' '));
                            return searchWord.CompareTo(currentWord);

                        }));

请帮忙!

1 个答案:

答案 0 :(得分:1)

这个问题无法用你在这里提出的问题来回答。没有人知道什么是“BinarySearchTextStream”以及它的作用(至少google没有说明这一点)。我只能给你一般的建议 - 关闭你的流,使用(...){}并且不要打开带有独占标志的文件(例如FileShare.None)。