public override void DoWork()
{
IndexReader r1 = null, r2 = null;
lock (@lock)
{
try
{
r1 = DirectoryReader.Open(Dir1);
r2 = DirectoryReader.Open(Dir2);
}
catch (IOException e)
{
if (!e.Message.Contains("on purpose"))
{
throw e;
}
if (r1 != null)
{
r1.Dispose();
}
if (r2 != null)
{
r2.Dispose();
}
return;
}
}
if (r1.NumDocs != r2.NumDocs)
{
throw new Exception("doc counts differ: r1=" + r1.NumDocs + " r2=" + r2.NumDocs);
}
r1.Dispose();
r2.Dispose();
}
}