using System.Runtime.CompilerServices; [MethodImplAttribute(MethodImplOptions.Synchronized)] protected void someSyncMethod() { ... }Также как и в Java, синхронизированными могут быть помечены сразу несколько методов класса, при этом, т.к. при вызове любого синхронизированного метода блокируется объект-хозяин, в любой момент времени возможно будет выполнение лишь одного из них.
barbitoff programmer`s blog
Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)
суббота, 23 апреля 2011 г.
C# - аналог ключевого слова synchronized для методов в Java
Иногда нужно, чтобы некоторый метод объекта выполнялся в каждый момент времени только одним потоком (т.е. чтобы вызовы к данному методу объекта сериализовывались, т.е. ставились в очередь). Для такого контроля конечно можно использовать, например, семафор, но в Java было предусмотрено специальное ключевое слово - synchronized. В C# есть аналогичная конструкция, которая, правда, не является частью языка:
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий