On-line: гостей 1. Всего: 1 [подробнее..]
АвторСообщение
администратор




Пост N: 887
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.09.08 16:05. Заголовок: [translate] BackGround


Кто то может перевести help к этим функциям на русский ?
HB_BackGroundActive() Queries and/or changes the activity of a single background task.
HB_BackGroundAdd() Adds a new background task.
HB_BackGroundDel() Removes a background task from the internal task list.
HB_BackGroundReset() Resets the internal counter of background tasks.
HB_BackGroundRun() Enforces execution of one or all background tasks.
HB_BackGroundTime() Queries or changes the wait interval in milliseconds after which the task is executed.
HB_IdleAdd() Adds a background task for being executed during idle states.
HB_IdleDel() Removes a task from the list of idle tasks.
HB_IdleReset() Resets the internal counter of idle tasks.
HB_IdleSleep() Halts idle task processing for a number of seconds.
HB_IdleSleepMSec() Queries or changes the default time interval for idle task processing.
HB_IdleState() Signals an idle state.
HB_IdleWaitNoCPU() Toggles the mode for CPU usage in Idle wait states.
SET BACKGROUND TASKS Enables or disables the activity of background tasks.
SET BACKGROUNDTICK Defines the processing interval for background tasks.


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 96 , стр: 1 2 3 4 5 All [только новые]


постоянный участник


Пост N: 488
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 22.09.08 19:08. Заголовок: HB_BackGroundActive(..


HB_BackGroundAdd() - добавляет новую фоновую задачу

Синтаксис:
HB_BackGroundAdd( <bAction>, [<nMillisecs>], [<lActive>] ) --> nTaskHandle

Аргументы:
<bAction>
Блок кода, который должен выполнятся в фоновом режиме.

<nMillisecs>
Необязательный числовой параметр, определяющий временной интервал в миллисекундах, после которого фоновая задача будет выполнена. Значение по умолчанию равно 0, а это значит, что фоновая задача вызывается каждый раз при проверке внутреннего списка задач фонового исполнения (имеется ввиду проверка внутренним обработчиком).

<lActive>
Значение по умолчанию для <lActive> равно .T. (ИСТИНА) приводит к тому, что <bAction> будет отмечен для немедленной фоновой деятельности. Передача же значения .F. (ЛОЖЬ) добавит задачу в внутренний список задач, но задача начнет выполняться после активирования ее посредством функции HB_BackGroundActive().

Возвращаемое значение:
Функция возвращает числовой дескриптор задачи, который вы обязательно должны сохранить, хотя бы для того, что бы в последствии удалить задачу с помощью HB_BackGroundDel() или использовать для других функций управления фоновыми задачами.

Описание:
Функция HB_BackGroundAdd() добавляет передаваемый ей в качестве аргумента блок кода в список фоновых задач которые будут выполнятся одновременно с главной программой. Ограничение на число фоновых задач не установлено.
Обработка фоновых задач должна быть включена командой SET BACKGROUND TASKS ON. Фоновые задачи обрабатываются секвенциально (последовательно) пока не будет SET BACKGROUND TASKS OFF или столкнемся с состоянием ожидания. Состояние ожидания есть такое состояние xHarbour virtual machine , в котором она (VM) ожидает пользовательский ввод с клавиатуры или события от мыши. VM входит в состояние ожидания при вызовах Inkey(). Все приложения, которые не использую вызовы функции Inkey() могут сигнализировать о состоянии ожидания посредством вызова функции HB_IdleState() (can signal the idle state with a call to the HB_IdleState() function) .
Примечение: для предотвращения прерывания фоновой обработки во время состояния ожидания задача ожидания должна быть определена как HB_IdleAdd( {||HB_BackGroundRun()} ).

Альтернатива фоновым задачам представлена потоками. Обратитесь к описанию функции StartThread() для одновременного выполнения частей приложения в различных потоках.



HB_BackGroundActive() - Запрашивает и/или изменяет активность одиночной фоновой задачи.

Синтаксис:
HB_BackGroundActive( <nTaskHandle> [, <lNewActive>] ) --> lOldActive

Параметры:
<nTaskHandle>
Дескриптор (числовой) фоновой задачи полученый в результате выполнения функции HB_BackGroundAdd().

<lNewActive>
Логическое значение (необязательный параметр) используемое для изменения активности фоновой задачи. Передавая .T. (ИСТИНА) можно активировать фоновую задачу и .F. (ЛОЖЬ) деактивировать ее.

Возвращаемое значение:
Функция возвращает предыдущее состояние (состояние до вызова функции) активности фоновой задачи, как логическое значение или NIL (см.ниже).

Описание:
Функция HB_BackGroundActive() опрашивает и изменяет (необязательно) состояние активности одиночной фоновой задачи. Если дескриптор задачи, возвращенный HB_BackGroundAdd() валидный (правильный), функция возвращает предыдущее состояние. Если передан неправильный дескриптор фоновой задачи, возвращаемое значение есть NIL.


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 489
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 22.09.08 19:11. Заголовок: А собственно какой п..


А собственно какой перевод нужен и зачем - такой вот подойдет ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 888
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.09.08 19:31. Заголовок: Петр пишет: А собст..


Петр пишет:

 цитата:
А собственно какой перевод нужен и зачем - такой вот подойдет ?


Да такой перевод подходит !!!
Есть одна задачка , которая должна обработать запросы с 20 станций одновременно и работать она должна
круглосуточно.
Можно остальной перевод ?
Хочу представлять как это работает , остальное сам докумекаю.
Спасибо !!!!!!!!!!!!!!!!!!

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 491
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 22.09.08 19:47. Заголовок: Dima пишет: Есть од..


Dima пишет:

 цитата:
Есть одна задачка , которая должна обработать запросы с 20 станций одновременно и работать она должна
круглосуточно.



Боюсь background здесь не пройдет, для решения такой задачи вам нужно

 цитата:
An alternative for background tasks is provided with threads. Refer to function StartThread() for running parts of an application simultaneously in multiple threads.


Альтернатива фоновым задачам представлена потоками. Обратитесь к описанию функции StartThread() для одновременного выполнения частей приложения в различных потоках.

Только вот незадача - MT в xHarbour реализован не полностью и не совсем корректно. Если религия позволяет ( ) посмотрите на Harbour.

Dima пишет:

 цитата:
Можно остальной перевод ?


Если действительно нужно - то сделаю сегодня. Хотя я к себе в роли переводчика отношусь мягко говоря с улыбкой

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 889
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.09.08 20:03. Заголовок: Петр Спасибо , ушел..


Петр
Спасибо , ушел думать ;) !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 492
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 22.09.08 21:39. Заголовок: HB_BackGroundDel() -..


HB_BackGroundDel() - удаляет фоновую задачу из внутреннего списка задач.

Синтаксис:
HB_BackGroundDel( <nTaskHandle> ) --> bAction

Параметры:
<nTaskHandle>
Числовой дескриптор фоновой задачи, полученный в результате выполнения функции HB_BackGroundAdd().

Возвращаемое значение:
Функция возвращает блок кода связанный с дескриптором задачи ( т.е. блок кода переданный функции HB_BackGroundAdd()) или NIL если указан неверный дескриптор.

Описание
Функция HB_BackGroundDel() удаляет задачу связанную с переданным в качестве аргумента дескриптором, из внутреннего списка фоновых задач. Дескриптор фоновой задачи должен быть значением, которое возвращено предыдущим вызовом функции HB_BackGroundAdd(). Если указанная задача существует, она деактивируется и связанный с ней блок кода будет возвращен в качестве результата выполнения HB_BackGroundDel(). Как было указано выше, если указан неверный дескриптор - функция возвратит NIL.



HB_BackGroundReset() - сбрасывает внутренний счетчик фоновых задач.

Синтаксис:
HB_BackGroundReset() --> NIL

Возвращаемое значение:
Возвращаемое значениеs всегда равно NIL.

Описание
Функция HB_BackGroundReset() устанавливает значение внутреннего счетчика фоновых задач (определяющий следующую задачу, которая будет выполнятся) равным 1. Как результат, следующий цикл фоновой обработки стартует с задачи, которая была определена первой.



HB_BackGroundTime() получает или изменяет период ожидания (в миллисекундах) после истечения которого задача начинает выполнятся.

Синтаксис:
HB_BackGroundTime( ( <nTaskHandle> [, <nNewInterval>] ) --> nOldInterval

Параметры:
<nTaskHandle>
Числовой дескриптор фоновой задачи, полученный в результате выполнения функции HB_BackGroundAdd().

<nNewInterval>
Необязательный числовой параметр, определяющий временной интервал в миллисекундах, который фоновая задача должна выждать между двумя циклами выполнения. Если nNewInterval установлен в 0, фоновая задача вызывается каждый раз при проверке внутреннего списка задач фонового исполнения.

Возвращаемое значение:
Функция возвращает раннее установленный интервал ожидания фоновой задачи в виде числового значения (в миллисекундах) или NIL в случае если вы передали функции неверный дескриптор задачи

Описание:
Функция HB_BackGroundTime() запрашивает или изменяет число миллисекунд, после которых задача начинает выполнятся. Как правило, временной интервал определяется значением передаваемым в качестве второго аргумента функции HB_BackGroundAdd().



HB_BackGroundRun() - предписывает выполнение одной или всех фоновых задач.

Синтаксис:
HB_BackGroundRun( [<nTaskHandle>] ) --> NIL

Параметры:
<nTaskHandle>
Числовой дескриптор фоновой задачи, полученный в результате выполнения функции HB_BackGroundAdd(). Если опущен, все фоновые задачи будут выполнены.

Возвращаемое значение:
Возвращаемое значениеs всегда равно NIL.

Описание:
Функция HB_BackGroundRun() выполняет одиночную фоновую задачу определяемую <nTaskHandle> или все задачи из внутреннего списка задач, в случае если <nTaskHandle> если не определен (т.е. если функция вызывается без аргументов). Функция может быть использована для принудительного запуска фоновой задачи во время нормального выполнения программы или во время пребывания программы в состоянии ожидания.
Примечание: HB_BackGroundRun() выполняет задачу указанную <nTaskHandle> немедленно, даже если период ожидания, указанный для данной задачи не истек или фоновая задача находится в неактивном состоянии.

Спасибо: 1 
ПрофильЦитата Ответить
постоянный участник


Пост N: 493
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 22.09.08 22:18. Заголовок: SET BACKGROUNDTICK -..


SET BACKGROUNDTICK - определяет интервал обработки для фоновых задач.

Синтаксис:
SET BACKGROUNDTICK <nInterval>

Аргументы:
<nInterval>
Числовое значение определяющее число инструкций обработанных виртуальной машиной xHarbour (VM) перед началом нового цикла обработки фоновой задачи. Значение по умолчанию равно 1000.

Описание:
SET BACKGROUNDTICK может быть использовано для "тюнинга" ( согласования, гармонии ) обработки фоновой задачи.
Значение по умолчанию 1000 обычно адекватно для хорошего баланса между нормальной и фоновой обработкой задач.
Фоновые задачи выполняются одновременно с главной программой. Если увеличивать <nInterval>, главная программа получит больше процессорного времени, вследствии чего меньше времени получит обработчик фоновых задач. Уменьшение <nInterval> улучшит время отклика для фоновых задач (но может ухудшить общую производительность программы - прим. переводчика ).



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 494
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 22.09.08 22:34. Заголовок: SET BACKGROUND TASKS..


SET BACKGROUND TASKS - разрешает или запрещает деятельность фоновых задач.

Синтаксис:
SET BACKGROUND TASKS on | OFF | (<lOnOff>)

Параметры:
on | OFF | (<lOnOff>)
Опции переключения активности фоновых функций, созданных HB_BackGroundAdd(). При ON или .T. (ИСТИНА), обработка фоновых задач доступна. OFF или .F. (ЛОЖЬ), установлено по умолчанию, запрещает обработку фоновых задач.

Описание:
SET BACKGROUND TASKS переключает (включает.выключает) активность обработки фоновых задач.
Фоновые задачи создаются функцией HB_BackGroundAdd() и выполняются одновременно с нормальными задачами программы.
Используйте HB_IdleAdd() для обработки паралельных (одновременных) задач только во время состояния ожидания.
Для доступности обработки фоновых задач SET BACKGROUND TASKS должен быть установлен в ON.


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 495
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 22.09.08 23:55. Заголовок: Во время перевода ок..


Во время перевода окончательно убедился, что функции

HB_IdleAdd() Добавляет фоновую задачу для началы выполнения во время состояния бездействия.
HB_IdleDel() Удаляет задачу с списка задач ожидания.
HB_IdleReset() Сбрасывает состояние счетчика задач ожидания.
HB_IdleSleep() Приостанавливает выполнение задач ожидания на n секунд.
HB_IdleSleepMSec() Запрашиват или изменяет интервал времени по умолчанию для обработки задач ожидания.
HB_IdleState() Указывает на состояние ожидания.
HB_IdleWaitNoCPU() Toggles the mode for CPU usage in Idle wait states.
вам не пригодятся.

Трудно представить задачу которая "должна обработать запросы с 20 станций одновременно и работать она должна
круглосуточно" и при этом еще должна ждать от пользователя ввод с клавиатуры или мыши.

Но если вдруг перевод таки понадобится, вам или кому нибудь другому, то смогу сделать толькозавтра вечером.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 890
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.09.08 10:34. Заголовок: Петр Огромное спаси..


Петр
Огромное спасибо дружище !!!!!!!!!

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 684
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.09.08 18:34. Заголовок: Дима, ты бы хелпик с..


Дима, ты бы хелпик сделал для всех.... Для чего использовать, примеры там....
Всем было бы интересно...

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 893
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.09.08 18:45. Заголовок: Andrey Андрей ну пр..


Andrey
Андрей ну примеры то еcть однако , например
mtstress.prg
mttest.prg
У меня тут лежат выкачанные с CVS
C:\CVS\xharbour\tests\

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 970
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.10.08 08:09. Заголовок: Петр а если у меня ..


Петр
а если у меня задача находится все время в состоянии бездействия и просто сканирует определенные
папки и выполняет операции с файлами (без участия пользователя , типа "сервер") имеет ли значение что использовать HB_IdleAdd() или HB_BackGroundAdd() ?


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 517
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 10.10.08 12:59. Заголовок: Dima пишет: а если ..


Dima пишет:

 цитата:
а если у меня задача находится все время в состоянии бездействия и просто сканирует определенные
папки и выполняет операции с файлами



Т.е. inkey() не используется?

В этом случае нужно или пользоваться HB_IdleAdd()
или если использовать HB_BackGroundAdd, то примерно так

PROCEDURE Main 
LOCAL nTask, nIdle

SET BACKGROUND TASKS ON

nIdle := HB_IdleAdd( {|| HB_BackGroundRun() } ) // обязательно !!

nTask := HB_BackGroundAdd( {|| ShowTime() }, 1000 )

//здесь что-то делаем

HB_BackGroundDel( nTask )
HB_IdleDel( nIdle )
RETURN


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 972
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.10.08 13:12. Заголовок: У меня примерно так ..


У меня примерно так
 
PROCEDURE Main
LOCAL nIdle,i,barray:=Array(3)
SET BACKGROUND TASKS ON
for i=1 to 3 // вроде пашет в 3 потока
barray := HB_IdleAdd({@TEST(),i})
next
do while inkey(0)#27
enddo

//функция Test и занимается работой с каталогами и базами
for i=1 to 3
HB_IdleDel( barray )
next
SET BACKGROUND TASKS OFF

RETURN


Есть какие то неточности или это полный бред ?

PS
Форум снова скушал скобки.......

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 973
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.10.08 13:33. Заголовок: Меня терзают смутные..


Меня терзают смутные сомнения.....
Предположим функция Test находится в процессе обработки базы данных и в этот момент
я жму Esc , завершится нормально текущий "Task" или нет ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 519
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 10.10.08 13:49. Заголовок: Dima пишет: заверши..


Dima пишет:

 цитата:
завершится нормально текущий "Task" или нет ?


В такой реализации скорее всего буду проблемы.

Теперь по поводу неточностей.
наверное правильнее будет

 цитата:
barray{i} := HB_IdleAdd(..
..
HB_IdleAdd(barray{i})



и зачем
SET BACKGROUND TASKS ON
SET BACKGROUND TASKS OFF
если HB_BackgroundAdd не используется..



Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 974
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.10.08 15:11. Заголовок: С удивлением обнаруж..


С удивлением обнаружил что HB_idledel всегда возвращает NIL
Например Idletest.prg из \Tests

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 520
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 10.10.08 18:17. Заголовок: Dima пишет: HB_idle..


Dima пишет:

 цитата:
HB_idledel всегда возвращает NIL



в Harbour все правильно
? hb_IsBlock(hb_IdleDel(id)) - > .T.

Все равно - в твоем случае я бы с MT эксперементировал.


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 976
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.10.08 18:24. Заголовок: Петр пишет: Все рав..


Петр пишет:

 цитата:
Все равно - в твоем случае я бы с MT эксперементировал


я бы рад , но не могу ADS приручить для этого режима. бьет ошибку
подробности тут http://clipper.borda.ru/?1-4-0-00000362-000-30-0-1223645823

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 96 , стр: 1 2 3 4 5 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 1
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет