有时会抛出异常,说该文件write.lock
不能被另一个进程使用,但是这是一个非常简单的 Lucene.Net 测试应用程序,并且没有其他进程在使用它,知道这可能是怎么回事
异常详情如下:
System.IO.IOException was unhandled
HResult=-2147024864
Message=The process cannot access the file
'c:\temp\luceneidx\write.lock' because it is being used by another process.
Source=mscorlib
StackTrace:
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.File.InternalDelete(String path, Boolean checkHost)
at System.IO.File.Delete(String path)
at Lucene.Test.LuceneSearchInternal.get__directory()
in C:\Lucene.Test\LuceneSearchResumes.cs:line 35
引发异常的相关代码是,
var lockFilePath = Path.Combine(_luceneDir, "write.lock");
if (File.Exists(lockFilePath))
File.Delete(lockFilePath); // THROWS exception sometimes
代码大部分来自这篇文章。
索引正在使用后台线程构建Task.Factory.StartNew()
,并且 WPF GUI 在构建索引时进行搜索。只有一个线程将文档写入索引。
问题:还有哪个进程在使用 Lucene.Net 索引?