Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.66/154: Рейтинг темы: голосов - 154, средняя оценка - 4.66
0 / 0 / 0
Регистрация: 29.07.2007
Сообщений: 383

Background Client Thread & Ui

22.12.2010, 11:32. Показов 28335. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, уважаемые соучастники!

Всю сознательную жизнь думал, что в фоновых агентах нельзя создавать объекты лотусных фронт-энд классов и вызывать их методы.
Об этом нас предупреждает и хелп:


To run an agent without having to wait until it completes, check "Run in background client thread."
Note that you should check thys option only if the agent (or the top-level agent that calls thys agent) is triggered by "On event - Action menu selection."
To get the full benefit of thys feature, the database should reside on a server and the agent must be invoked via the client.
If you check thys box and the agent references front end classes, the user receives a run-time error.
Интернет подтверждает:
http://www.breakingpar.com/bkp/home.nsf/0/...7256FC40074B111

А тут как-то решил попробовать... и получилось. Создал объект NotesUIWorkspace, вызвал его методы Prompt и SaveFileDialog - все работает, никаких ошибок.
Клиент 8.5.2 на винде.

Не сомневаюсь, что узнал секрет Полишинеля, но все-таки вопрос: а в чем подвох?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.12.2010, 11:32
Ответы с готовыми решениями:

Агент Run In Background Client Thread
Есть агент, который обрабатывает тучу документов по клику пользователя из представления. Эта туча документов растет - поэтому у агента...

Thread? Task? Background worker?
Доброго вечера/ночи/утра/дня! Снова, наверное, глупый вопрос, который не могу решить. Помогите, пожалуйста. Суть такова: есть два...

Background Thread и остановка ASP.NET ApplicationPool
У меня есть ASP.NET приложение работающее на IIS 6. Иногда (нечасто) у него будет необходимость запустить 'длинную' (до 3 мин) задачу -...

24
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
22.12.2010, 11:43
Цитата Сообщение от D!m@n
А тут как-то решил попробовать... и получилось. Создал объект NotesUIWorkspace, вызвал его методы Prompt и SaveFileDialog - все работает, никаких ошибок.
и что на сервере выскочил промт?
0
0 / 0 / 0
Регистрация: 29.07.2007
Сообщений: 383
22.12.2010, 11:48
Какой сервер?
Речь о background client agent.
0
1 / 1 / 0
Регистрация: 04.08.2006
Сообщений: 2,950
22.12.2010, 12:33
а каков результат на деле?
0
0 / 0 / 0
Регистрация: 29.07.2007
Сообщений: 383
22.12.2010, 14:01
Дык я ж и говорю - работает!

Создайте агента со следующим кодом:

LotusScript
1
2
3
4
5
6
7
8
9
10
11
12
Sub Initialize
On Error GoTo ErrCatch
Dim uiw As New NotesUIWorkspace
Dim sResult As String
sResult = uiw.Prompt(3, "Заголовок", "Введите че-то", "че-то")
MsgBox "Вы ввели: " + sResult
GoTo es
ErrCatch:
MsgBox "Ошибка " & Err & ": " & Error$ & " в строке " & Erl
Resume es
es:
End Sub
Затем поднимите флажок "Run in background client thread" и запустите агента.
У меня на клиенте 8.5.2 работает (т.е. в данном случае на экране появляется сначала Prompt, потом MessageBox с введенным в Promptе текстом).
С файловыми диалогами тоже работает.
С EditDocument не проверял.
0
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
22.12.2010, 14:16
Затем поднимите флажок "Run in background client thread" и запустите агента.
и как же вы его запускали то?
0
0 / 0 / 0
Регистрация: 29.07.2007
Сообщений: 383
22.12.2010, 14:34
Мышкой (см. прилагаемый рисунок ). А Вы как обычно запускаете агентов с триггером On Event\Action menu selection?
0
0 / 0 / 1
Регистрация: 30.06.2007
Сообщений: 2,153
22.12.2010, 16:21
Да уж сто лет как работает.
Я как-то даже делал тему и выкладывал базку, что-то там про псевдо-аджакс под нотесом. (я знаю, что "аджакс" не правильно, но мне так нравится).
Все нативные ws ф-ии (Save/OpenFileDialog, Prompt, PickList...) работают.
Не работает тока DialogBox.

Вообще, бекграундные треды - офигенная вещь!
0
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
22.12.2010, 17:53
Мышкой (см. прилагаемый рисунок ). А Вы как обычно запускаете агентов с триггером On Event\Action menu selection?
и что если назвать агент фоновым он становится фоновым? ;)
мдя, логика зачотная ;)
0
0 / 0 / 0
Регистрация: 29.07.2007
Сообщений: 383
22.12.2010, 18:09
Цитата Сообщение от ToxaRat
и что если назвать агент фоновым он становится фоновым? ;)
мдя, логика зачотная ;)
Будете к словам придираться?..

Ну хорошо:
Во-первых, фоновым он называется в документации.
Во-вторых, учитывая то, что такой агент отрабатывает в background client thread, что в переводе с английского означает "фоновый клиентский поток", название "фоновый агент" представляется мне достаточно корректным (см. перевод на Lingvo Online).
В-третьих, отрабатывает он реально в фоновом режиме, пользователь во время работы этого агента может спокойно продолжать работу с клиентом Lotus Notes.

Ну и чем Вам не фоновый агент?
0
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 2,219
23.12.2010, 08:29
ToxaRat
Что-то я не догоняю — это незнание матчасти (с таким-то опытом ;) ) или предновогодний троллинг?
Вот тут вышеупомянутая иллюстрация от Omh:
http:///ipb.html?s=&sh...st&p=171280
0
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
23.12.2010, 11:41
Цитата Сообщение от nvy
Что-то я не догоняю
вот именно!



Цитата Сообщение от D!m@n
Во-вторых, учитывая то, что такой агент отрабатывает в background client thread, что в переводе с английского означает "фоновый клиентский поток", название "фоновый агент" представляется мне достаточно корректным (см. ]]>перевод на Lingvo Online]]>).
В-третьих, отрабатывает он реально в фоновом режиме, пользователь во время работы этого агента может спокойно продолжать работу с клиентом Lotus Notes.
фоновый агент это агент отрабатывающийся на сервере, у сервера воркспейса нету - лишь текстовая консолька оттого такие агенты на сервере никогда не запустятся, отого я и не согласен с лихим переводом и натягиванием background client thread как "фоновый агент" правильно его так и называть как его вам переводит лингво, с чётким указанием, что КЛИЕНТСКИЙ
0
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 2,219
23.12.2010, 11:54
Цитата Сообщение от ToxaRat
фоновый агент это агент отрабатывающийся на сервере
Из серии "белое — это пушистое". Серверный — это агент, исполняющийся на сервере. Фоновый — это агент, исполняющийся в фоновом, т.е. не основном потоке. Речь здесь об агенте, исполняющемся в фоновом клиентском потоке (background client thread), и о том, что вопреки утверждения IBM, некоторые уи-методы в нём доступны.
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
23.12.2010, 12:25
у нотусни есть несколько (а вот скока не знаю) тредов, для разных нужд...
что из них индусы называют фоновой - это дело их личной гигиены :trash:
просто для них любая треда, не связанная (напрямую) с циклом основного виндового окна клиента - будет фоновой :crash:
мосх виндовс прогерра - он такой...
0
0 / 0 / 0
Регистрация: 29.07.2007
Сообщений: 383
23.12.2010, 12:53
Цитата Сообщение от ToxaRat
фоновый агент это агент отрабатывающийся на сервере, у сервера воркспейса нету - лишь текстовая консолька оттого такие агенты на сервере никогда не запустятся, отого я и не согласен с лихим переводом и натягиванием background client thread как "фоновый агент" правильно его так и называть как его вам переводит лингво, с чётким указанием, что КЛИЕНТСКИЙ
nvy Вам правильно ответил:


Цитата Сообщение от nvy
Серверный — это агент, исполняющийся на сервере. Фоновый — это агент, исполняющийся в фоновом, т.е. не основном потоке. Речь здесь об агенте, исполняющемся в фоновом клиентском потоке (background client thread), и о том, что вопреки утверждения IBM, некоторые уи-методы в нём доступны.
Тут и добавить нечего.

ToxaRat, ну перепутали, с кем не бывает... но зачем спорить-то, за слова цепляться?..
По большому счету тут все свои :crash:
0
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
23.12.2010, 14:44
ToxaRat, ну перепутали, с кем не бывает... но зачем спорить-то, за слова цепляться?..
я не спорю, я уточняю :(
мне вот дальше интересней а применение этой фичи чем вообще хорошо?
и чем она лучше того-то таймера?

вот думаю, как бы удачнее этот тренд повесить на формирование отчёта, пока юзер там себе еще чо-то вояет, однако быстрее отчёт не сформируется и каков максимум тренд потоков можно задать? ;)
0
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 2,219
23.12.2010, 15:03
Цитата Сообщение от ToxaRat
как бы удачнее этот тренд повесить
В лёгкую. Почитав сию тему, попробовал агентику, экспортирующий данные из Лотус-базы в файл, поставить эту замечательную галку "Run in background client thread". В начале агента пользователю открывается ws.SaveFileDialog для указания файла экспорта. Так вот, диалог открылся, но вот ввести имя файла и нажать ОК не получилось — максимум можно было таскать окно диалога по экрану. Пришлось тушить клиента (8.0.1 en на WinXP). Другие диалоги пока не пробовал.
0
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
23.12.2010, 16:01
вот о каких ограничениях я говорю, если кто не понял
0
0 / 0 / 0
Регистрация: 29.07.2007
Сообщений: 383
26.12.2010, 08:58
Цитата Сообщение от nvy
В лёгкую. Почитав сию тему, попробовал агентику, экспортирующий данные из Лотус-базы в файл, поставить эту замечательную галку "Run in background client thread". В начале агента пользователю открывается ws.SaveFileDialog для указания файла экспорта. Так вот, диалог открылся, но вот ввести имя файла и нажать ОК не получилось — максимум можно было таскать окно диалога по экрану. Пришлось тушить клиента (8.0.1 en на WinXP). Другие диалоги пока не пробовал.
Буквально в пятницу ввел в действие аналогичного агента. У меня клиент, как я уже говорил, 8.5.2 эклипснутый, у юзеров - 8.5.1 Basic. И у меня, и у них диалоги работают... B)

Добавлено:


Цитата Сообщение от ToxaRat
вот о каких ограничениях я говорю, если кто не понял
Это попытка запустить 2-х бэкграундных агентов параллельно на одном клиенте?..
0
0 / 0 / 1
Регистрация: 30.06.2007
Сообщений: 2,153
26.12.2010, 10:14
Цитата Сообщение от ToxaRat
вот о каких ограничениях я говорю, если кто не понял
Ну так это скорее всего попытка показать ws.DialogBox.
DialogBox, да - не работает, но все промты, пиклисты и прочие сейвфайлдиалоги - работают.
Почти всегда их хватает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.12.2010, 10:14
Помогаю со студенческими работами здесь

Многопоточный Client-Server. Через Thread или Task?
Здравствуйте. Сейчас встала задача вновь написать Client-Server TCP. Но у меня уже был печальный опыт когда ломились 1к+ конектов с...

Непонятки в Java. Chain method call. Thread.start() vs Thread.run()
Ребят, кто знает подскажите, изучаю Java уже 4 месяца, а до меня все не доходит вот к примеру такая запись, ...

Неоднозначный вызов следующих методов или свойств - Thread.Thread()
Вот кусок кода, по которому у меня вопрос: this.dataGridView1.Rows.Insert(this.dataGridView1.Rows.Count, new object); ...

Чем отличаются background-clip и background-origin?
Доброго времени суток! Объясните, пожалуйста, чем отличаются background-clip и background-origin.

Передать данные в работающий thread из другого thread
Есть 2 потока запущенные разными классами и из потока А нужно сообщить потоку Б что бы он запустил свою определенную функцию. Ссылки на...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru