предположат у меня есть размещаемая служба WCF в консольном приложении, как это:службы WCF и блокировки ключевого слово
public class MyService : IContract
{
public static readonly object _locker_ = new object();
public static void DoSomething()
{
lock (_locker_)
{
//block 1
DoAnotherWork();
}
}
void IContract.Foo1()
{
lock (_locker_)
{
//block 2
DoSomeWork();
}
}
void IContract.Foo2()
{
DoSomething();
}
}
делает это гарантирует, что только один клиент находится в блоке 1? или блок 2?
так что я могу просто выполнить некоторую синхронизацию между моими клиентами только со статической блокировкой в моем сервисе? – HPT
@ HPT, если ваша синхронизация означает «только одна», да. Но! Это звучит слишком грубо, если у вас много абонентов. Вы по существу будете обрабатывать все запросы отдельно; есть способы сделать это в WCF путем маркировки атрибутами. –