C# への書き換え時のミスを修正
多重起動時の動作を少し変更
ListViewItemのキャッシュにロックを使用

ロックが二重に行われるのを避けるためにDetailsListViewの再描画処理を削除した。
ListViewSubItem.BackColorを変更した時点で再描画されていそうな気がする。
ImageCacheの排他制御を改善

Monitorクラスを使用して排他制御を行っていた箇所をReaderWriterLockSlimに置き換え