Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
5 / 5 / 2
Регистрация: 12.08.2011
Сообщений: 95

Совместное использование Invoke и lock завешивают приложение

04.11.2012, 10:54. Показов 1231. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Каждый раз, когда использую lock и Invoke вместе, приложение намертво зависает. Например, так:
C#
1
2
3
4
5
6
7
8
                        Invoke((foo)delegate
                        {
                            lock (lockObj)
                            {
                                browser.Focus();
                                SendKeys.SendWait("something");
                            }
                        });
Можно поменять местами lock/Invoke, результат будет тот же.
Если сделать то же самое без Invoke, то, всё проходит успешно, но некоторые методы (например, Focus определённого контрола) не срабатывают в левом потоке.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.11.2012, 10:54
Ответы с готовыми решениями:

Вывести на экран в символическом виде состояние NUM LOCK, CAPS LOCK и SCROLL LOCK
Помогите решить задачку на турбо си Выводить на экран в символическом виде состояние NUM LOCK, CAPS LOCK и SCROLL LOCK (вкл. / выкл.),...

Acer aspire 5552G-N974G64Mikk Проблема с Caps Lock, Num Lock, Scroll Lock
Вообщем у меня такая же проблемма https://www.cyberforum.ru/notebooks/thread552722.html Небольшая проблема на ноутбуке, когда...

Клавиатура мигает всеми тремя индикаторами Caps Lock, Scroll Lock и Num Lock и соответственно не работает!
Здравствуйте парни и девушки! Столкнулся с такой проблемой! Имеется клавиатура Genius Ergomedia 700! Так вот. Начал замечать интересную...

5
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
04.11.2012, 23:17
Где-то выше по стеку тоже lock сидит.
Хотя, он здесь вообще не нужен.
0
5 / 5 / 2
Регистрация: 12.08.2011
Сообщений: 95
05.11.2012, 13:46  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
Где-то выше по стеку тоже lock сидит.
Хотя, он здесь вообще не нужен.
Выше нет lock, проблема повторяется в разных ситуациях.
Представляете себе хаотичное SendKeys в разные контролы? Поэтому lock нужен.
0
215 / 215 / 20
Регистрация: 18.05.2010
Сообщений: 865
05.11.2012, 14:23
Цитата Сообщение от Chuckcha Посмотреть сообщение
Представляете себе хаотичное SendKeys в разные контролы? Поэтому lock нужен.
Для доступа к контролу надо использовать тот поток в котором находится сам контрол как вы и делаете путем вызова Invoke, а там будет все нормельно !!!! Так что kolorotur, прав, lock не нужен.
0
5 / 5 / 2
Регистрация: 12.08.2011
Сообщений: 95
05.11.2012, 18:00  [ТС]
Цитата Сообщение от Башир Посмотреть сообщение
Для доступа к контролу надо использовать тот поток в котором находится сам контрол как вы и делаете путем вызова Invoke, а там будет все нормельно !!!! Так что kolorotur, прав, lock не нужен.
Дело в том, что SendKeys эмулирует нажатия клавиш, и набор букв происходит в том контроле, который имеет фокус. Представьте, что у нас два контрола с браузерами и два потока. Сначала первый поток сфокусировал первый браузер и начал набирать буквы, но тут приходит злой второй поток и перехватывает фокус на второй браузер, в итоге во втором браузере - каша.
0
 Аватар для Yukikaze
352 / 331 / 49
Регистрация: 12.12.2011
Сообщений: 563
05.11.2012, 19:18
Цитата Сообщение от Chuckcha Посмотреть сообщение
но тут приходит злой второй поток и перехватывает фокус на второй браузер, в итоге во втором браузере - каша.
И сразу навязывается вопрос, и *кхм* зачем тут два потока?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.11.2012, 19:18
Помогаю со студенческими работами здесь

Работа с клавиатурой (клавиши num lock, caps lock, scroll lock)
определить состояние статуса клавиш " num lock, caps lock,scroll lock " с отображением и их измением на экране

совместное использование C# и C++
Здравствуйте! Хотелось бы знать как мне поступить. Сразу скажу с C# мало знаком, хорошо знаком с С++. Вообщем у меня есть, готовый...

Совместное использование БД
Вопрос знатокам: Сколько пользователей может совместно использовать БД через сетевую папку ?

Совместное использование классов
Здравствуйте, возник такой вопрос, как следует писать код, чтобы 2 не зависимых класса могли использовать друг друга? Вот к примеру код ...

Совместное использование Qt и Directx 9
В общем вопрос можно ли подключить Directx 9 в Qt Creator ,если можно то как?Можно ли все это сделать в VS2012 , если да то как?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru