私たちには、PDFファイルを生成するために使用されるWCF Webサービス操作があります。私たちは現時点では交換できないサードパーティのツール(特にSyncfusion)を使用しています。WCF webservice - ロックを使用して問題が発生していますか?
サードパーティツールはマルチスレッドに問題があり、同時に複数のWebサービスを呼び出すと動作しない場合があるという問題があります。
我々はlock
を使用して、唯一のスレッドがクリティカルセクションを実行することを確認することで、この問題を取り除くことができます。
Public Class GeneratorController
{
// object we use for lock
private static Object thisLock = new Object();
public void Generate(ref PdfDocument pdfDocument)
{
lock (thisLock)
{
// critical section
}
}
}
私の質問は以下のとおりです。良いアイデアということでしょうか? Webサービスにそのようなコードがあれば問題は起こりますか?
注
これはSyncfusionについての質問ではありません。これは、Webサービスでlock
を使用することに関する質問です。タグをsyncfusionに変更しないでください。
私はSyncfusionに精通していません - オブジェクトの複数の同時インスタンスを作成することは可能ですか?私はあなたがロックする必要のない別個のインスタンスを持っていると思います。 – Tim
私もそうだけど問題だと思う。たぶん彼らはコード内に何か静的なものを使用しています... – Szymon