データを読み取るだけのインターフェイスを持つWCFサービスがあります。ただし、データベースからデータをリロードして一部の辞書を再初期化するインターフェイスが1つあります。このインターフェース「リロード」を実行している間、私は効果的に(私は、呼び出しごとの使用していたように)彼らは未知の状態のデータを読み込むと同じように、他のすべての呼び出しはWCF:1つの特定のインターフェイスが呼び出されているときにすべての呼び出しを待機させます。
[ServiceContract]
public interface IMyObject
{
[OperationContract]
string Reload();
[OperationContract]
string Read1();
[OperationContract]
string Read2();
}
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
class MyObject : IMyObject
{
public string Reload() { //Takes 5-10secs, called twice a day }
public string Read1() { //Wait for Reload() to finish if it's running}
public string Read2() { //Wait for Reload() to finish if it's running}
}
は、このことは可能です「hold」に置くことにしたいですWCF?または、この問題を回避するための最良の方法がありますか?