Цитата(Partizan @ 8.8.2008, 15:26 ) | | Idsa, похоже здесь больше подойдёт использование мьютексов / семафоров (нужное подчеркнуть) |
Оказывается, несмотря на кросс-процессную область видимости Mutex'а (Monitor может использоваться только в пределах одного AppDomain), на него, как и на Monitor, распространяется ограничение "в этом потоке заблокировал, в этом же будь добр и разблокировать". К счастью, Semaphore лишен этого ограничения. Так что единственный выход в моей ситуации - использовать одноместный Semaphore. Что я, в общем-то, и сделал  Вот отличная статья по multythreading'у: http://www.albahari.com/threading/part2.html Мне она понравилась даже больше, чем мануал Рихтера. Вот выдержки из этой статьи, подтвержающие мои слова: 1. Про Mutex:
| Цитата | Just like with C#'s lock statement, a Mutex can only be released from the same thread that obtained it.
|
2. Про Semaphore:
| Цитата | A Semaphore with a capacity of one is similar to a Mutex or lock, except that the Semaphore has no "owner" – it's thread-agnostic. Any thread can call Release on a Semaphore, while with Mutex and lock, only the thread that obtained the resource can release it.
|
Добавлено через 2 минуты и 47 секунд
Цитата(Partizan @ 8.8.2008, 14:55 ) | | Idsa, эээ...а можете привести конкретную ситуацию, когда такое поведение является желаемым?... |
Нашел красивую формулировку ответа на этот вопрос: для упорядочивания обращений к совместно используемым ресурсами 
|