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




Пост N: 3831
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 13.02.14 16:38. Заголовок: Idle


Функция прописанная в hb_idleAdd разве не должна работать фоново и не влиять на основной процесс.
Пример таков
nvesH := hb_idleAdd( {||Vescreen() } )
тут мой бровс
hb_idleDel(nvesH)

Func Vescreen()
** тут я снимаю вес с электронных весов и вывожу его на экран.
* снятие веса может занимать до 1 секунды и именно эту задержку
*чувствую когда хожу по бровсу

hb_DispOutAt(3,60,MVesi(aversun[1],aversun[2],aversun[3],.f.),"gr+/b")
return nil

что не так делаю ?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 4 [только новые]





Пост N: 211
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 13.02.14 17:24. Заголовок: Попробуй так di..


Попробуй так

dim[1]:=HB_IdleAdd( {|| HB_BackGroundRun() } )
dim[2]:=HB_BackGroundAdd( {|| МояФункция() }, 100, .T.)

броузер

HB_BackGroundDel( dim[2] )
HB_IdleDel( dim[1] )


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




Пост N: 3832
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 13.02.14 18:01. Заголовок: fil пишет: dim:=HB..


fil пишет:

 цитата:

dim[1]:=HB_IdleAdd( {|| HB_BackGroundRun() } )
dim[2]:=HB_BackGroundAdd( {|| МояФункция() }, 100, .T.)



Не много не так нужно
Вот так
dim[2]:=HB_BackGroundAdd( {|| МояФункция() }, 100, .T.)
dim[1]:=HB_IdleAdd( {|| HB_BackGroundRun(dim[2]) } )

Тормоза по прежнему в бровсе
Попробую с потоками !

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





Пост N: 207
Зарегистрирован: 16.12.08
ссылка на сообщение  Отправлено: 13.02.14 18:15. Заголовок: пример с xHarbour, р..


пример с xHarbour, работает в Harbour


 цитата:

PROCEDURE Main
LOCAL nCounter := 10
CLS
//DispOutAtSetPos( .F. )

nTask := HB_IdleAdd( {|| DispMsg( --nCounter ) } )

? "Test program for idle state"
?
?
InKey( 10 )

HB_IdleDel( nTask )

?
? "Program resumes"
RETURN


PROCEDURE DispMsg( nCounter )
LOCAL cMsg

cMsg := "Program resumes in "
cMsg += Ltrim( Str(nCounter) )
cMsg += " seconds unless you press a key"

//DispoutAt( Row(), Col(), cMsg )
? cMsg
Hb_IdleSleep( 1 )
RETURN




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




Пост N: 3833
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 13.02.14 18:53. Заголовок: santy Чуть модифици..


santy
Чуть модифицировал твой пример
 
PROCEDURE Main
LOCAL nCounter := 10
CLS
//DispOutAtSetPos( .F. )

nTask := HB_IdleAdd( {|| DispMsg( --nCounter ) } )

use TEST new
browse(1,0,24,79)


HB_IdleDel( nTask )

?
? "Program resumes"
RETURN


PROCEDURE DispMsg( nCounter )
LOCAL cMsg

cMsg := "Program resumes in "
cMsg += Ltrim( Str(nCounter) )
cMsg += " seconds unless you press a key"

HB_DispoutAt( 0, 0, cMsg )
Hb_IdleSleep( 1 )
RETURN



Попробуй походить по браузеру ;)

Переделал на потоки , тормозов нет !

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

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