2009-07-30 7 views
1

ファイルにログするクラスがあります。このクラスは複数のスレッドで使用されています。 私はwrite関数内でmutexを使用しています。これはアプリケーションの1つのインスタンスで正常に動作します。 私はアプリケーションの複数のインスタンスを起動する場合、クラッシュします。プロセス全体で動作するクラスレベルのミューテックスを作成する方法

プロセス全体で動作できるクラスレベルでの名前付きmutexの正しい実装は何ですか?

+1

?どの言語? –

+0

in .net、c# –

+0

これは少しのコードを示し、あなたが得ているエラーを提示するのに役立ちます。通常は、Mutexコンストラクタで名前を使用するだけで十分です。 – AnthonyWJones

答えて

0

ロギングでは、私は(排他的なlocKで)オープンし、すべての書き込みに対してファイルを閉じることを推奨します。ロックは同期を処理します。あなたはSystem.IO.File.AppendAllText()メソッドを試してみるかもしれません - 私はそれがまさにそのことを疑っています。

3

名前の付いたミュテックスを使用してください。プロセス間同期のために動作します。

Mutex mut = new Mutex(false, "Global\\uniquename"); 

ミューテックスを使用するためのベストプラクティスのために、この記事を参照してください:プラットフォーム What is a good pattern for using a Global Mutex in C#?

関連する問題