Как изменить текст в заголовке окна Windows Forms?

То, что Вы ищете, является обновлением блокировки и не возможно (по крайней мере, не атомарно) использование стандартного java.concurrent ReentrantReadWriteLock. Ваш лучший выстрел, разблокируют/блокируют, и затем проверяют, что никто не сделал промежуток модификаций.

, Что Вы пытаетесь сделать, принуждение всех блокировок чтения из пути не является очень хорошей идеей. Читайте блокировки там по причине, которую Вы не должны писать.:)

РЕДАКТИРОВАНИЕ:
, Как Выполнил Biron, на которого указывают, если Вашей проблемой является исчерпание ресурсов (блокировки чтения устанавливаются и выпускаются все время, никогда не опускаясь до нуля) Вы могли попытаться использовать справедливую организацию очередей. Но Ваш вопрос не казался, что это было Вашей проблемой?

РЕДАКТИРОВАНИЕ 2:
я теперь вижу Вашу проблему, Вы на самом деле получили несколько блокировок чтения на стеке, и требуется преобразовать их в блокировку записи (обновление). Это на самом деле невозможно с реализацией JDK, поскольку она не отслеживает владельцев блокировки чтения. Могли быть другие, держащие блокировки чтения, которые Вы не будете видеть, и это понятия не имеет, сколько из блокировок чтения принадлежит Вашему потоку, не говоря уже о Вашем текущем стеке вызовов (т.е. Ваш цикл уничтожает весь блокировки чтения, не только Ваше собственное, таким образом, Ваша блокировка записи не будет ожидать никаких параллельных читателей для окончания, и Вы закончите с путаницей на Ваших руках)

, у меня на самом деле была подобная проблема, и я закончил тем, что писал свою собственную блокировку, отслеживающую того, кто получен что блокировки чтения и обновляющий их до блокировок записи. Хотя это было также видом Копии на записи блокировки чтения-записи (разрешающий одному писателю вдоль читателей), таким образом, это немного отличалось все еще.

50
задан Peter Mortensen 15 January 2017 в 07:10
поделиться