私は値を格納するためにXMLファイルを使用しています。このXMLファイルには、複数のメソッドからアクセスできます。ファイルに読み書き中のIO例外
Private object lockObject = new object()
Method1
{
Lock(this.lockObject)
{
MyCommonMethod()
}
}
Timer.ElapseEvent
{
Lock(this.lockObject)
{
MyCommonMethod()
}
}
MyCommonMethod()
{
// Read/Write to XML file.
var element = XElement.Load(path);
// some operations
element.save(path)
}
このクラスは、他の多くのクラスと、それはSystem.IO例外がスローされますいくつかの回で使用され、私は案内してくださいLOCK文
を使用しているが、ファイルはすでに、他のプロセスによって使用されます。
このファイルを使用している他のプロセスはありますか? –
これは同時に同じオブジェクトからの 'MyCommonMethod'への複数の呼び出しを防ぎますが、同時に複数のオブジェクトが同じ' path'を持つ場合、これは失敗する可能性があります。 'path'ごとにオブジェクトが1つしかないことを保証しますか? – porges
'//some operations'コードは、MyCommonMethodを(おそらくは間接的に)呼び出すことができる何かをしますか? – phoog