別のプロセスで使用されているためファイルを使用できないという例外がスローされることがあります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()
おり、WPFGUIはインデックスの構築中に検索を実行します。インデックスにドキュメントを書き込むスレッドは1つだけです。
質問: Lucene.Netインデックスを使用している他のプロセスはどれですか?