Что нового

[Автоматизация] Как узнать обновился ли Grid или написать бесконечный цикл?

awarskiy

Новичок
Сообщения
5
Репутация
0
Привет!

Такой вопрос. Есть элемент GridView. Время от времени он обновляется, новые строки надо считать и отправить куда надо. Вопрос: есть ли инструменты , которые сообщают мне обновился ли элемент, или написать для этих целей свой бесконечный цикл, который каждую секунду будет проверять , обновился ли элемент. И как этот бесконечный цикл будет работать в системе, не будет ли ЦП все время загружен на 100%?
 

InnI

AutoIT Гуру
Сообщения
4,950
Репутация
1,445
awarskiy
инструменты, которые сообщают мне обновился ли элемент
Если найдёте - обязательно сообщите.

или написать для этих целей свой бесконечный цикл
Лучше написать, т.к. поиск "инструмента" может занять довольно продолжительное время.
С другой стороны, если изменения видимые, то можно сравнить скриншоты или контрольные суммы пикселей PixelChecksum(). Но, насколько я понял, получать изменения нужно всё равно циклом? Поэтому проще сразу написать цикл опроса и сравнивать массивы/строки/ячейки.

будет ли ЦП все время загружен на 100%
Если планируете делать опрос раз в секунду, а цикл будет занимать менее секунды, то, конечно, процессор загружен не будет. Если же вы хотите сделать постоянный опрос, то для разгрузки процессора добавьте в цикл небольшой Sleep().
 
Автор
A

awarskiy

Новичок
Сообщения
5
Репутация
0
Если планируете делать опрос раз в секунду, а цикл будет занимать менее секунды, то, конечно, процессор загружен не будет. Если же вы хотите сделать постоянный опрос, то для разгрузки процессора добавьте в цикл небольшой Sleep().

Как я понял. Если написать цикл
Код:
While 1
    ;код проверки обновления
    Sleep(1000);
WEnd

, то процессор не будет нагружаться ?
 

InnI

AutoIT Гуру
Сообщения
4,950
Репутация
1,445
awarskiy
Верно поняли. Можно ещё так оформить
Код:
While Sleep(1000)
    ;код проверки обновления
WEnd
 

InnI

AutoIT Гуру
Сообщения
4,950
Репутация
1,445
inververs
ничего не возвращает, официально
Как раз официально они все что-то возвращают: http://autoit-script.ru/autoit3_docs/function_notes.htm
[box]Даже если в документации указано, что функция не возвращает значение, AutoIt всё равно возвращает значение (чтобы избежать ошибок).[/box] Даже при условии "вы не должны на него ориентироваться" это не похоже на хак.

если разрабы переделают возврат
Это к любым функциям относится. Да и вообще ко всему коду AutoIt :smile:
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Очень похоже, это как вычитать глубоко в документации об особенностях и применять не по теме, ведь так тоже работает.

InnI [?]
Это к любым функциям относится. Да и вообще ко всему коду AutoIt
smiley.gif
Если такое будет, то напишут доку о "изменениях ломающих обратную совместимость".
Ну и для чего так писать, мне лично не очень понятно, экономия в 1 строчку, и понятности не добавляют, т.е вместо того что бы просто написать while 1, еще нужно помнить, что sleep возвращает что-то положительное.
 

InnI

AutoIT Гуру
Сообщения
4,950
Репутация
1,445
inververs
sleep возвращает что-то положительное
Можно и отрицательное, главное чтобы не ноль :smile:

Ладно, ладно. Не будем устраивать "холивар". Кому как удобней, тот так и пишет.
В любом случае я - предложил (можно оформить), а не рекомендовал (лучше оформить) ;)
 
Верх