Что нового

Отличие TimerInit() от _Timer_Init()

The Dream

Новичок
Сообщения
393
Репутация
3
Собственно вопрос в шапке...
Если кому не трудно.. :smile:
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
dream.reckless
ИМХО, нет отличий. Пример:
Код:
#include <Timers.au3>

Global $i_Timer, $i_TimerUDF

$i_Timer = TimerInit()
$i_TimerUDF = _Timer_Init()
For $i = 1 To 10
	Sleep(Random(2000, 5000, 1))
	ConsoleWrite('UDF -> Not UDF: ' & Round(TimerDiff($i_TimerUDF)) & @LF)
	ConsoleWrite('Not UDF -> UDF: ' & Round(_Timer_Diff($i_Timer)) & @LF)
	ConsoleWrite('UDF -> UDF: ' & Round(_Timer_Diff($i_TimerUDF)) & @LF)
	ConsoleWrite('Not UDF -> Not UDF: ' & Round(TimerDiff($i_Timer)) & @LF)
	ConsoleWrite('---' & @LF)
Next
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Да, даже смесь работает)

Код:
#include <Timers.au3>
HotKeySet("{ESC}", "_Quit")

$starttime = TimerInit()
While 1
    ToolTip(_Timer_Diff($starttime))
WEnd

Func _Quit()
    Exit
EndFunc   ;==>_Quit
 
Автор
T

The Dream

Новичок
Сообщения
393
Репутация
3
madmasles, спасибо большое, мне тоже кажется что отличий нет. Но зачем тогда придумали еще udf - неизвестно.. :whistle:
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
dream.reckless [?]
Но зачем тогда придумали еще udf - неизвестно..
Чтобы было! ;D
И там еще есть весьма интересные и нужные функции, которых встроенных нет.
 
Автор
T

The Dream

Новичок
Сообщения
393
Репутация
3
madmasles, ну, знаете) посмотрю. Просто сама реализация ф-ции TimerInit or TimerDiff довольно простые. Но и их сделали еще ("дубли").
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
dream.reckless [?]
сделали еще ("дубли")
Это не дубли - это альтернатива. На случай, если со встроенными будут проблемы.
В версии 3.3.10.2, например, есть некоторые проблемы с получением текста окон и элементов встроенными функциями. А альтернативные - работают.
Ну, и свобода выбора, опять же. Каждый вправе пользоваться той функцией, которой доверяет (код альтернативных можно увидеть в отличие от встроенных).
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
InnI [?]
Это не дубли - это альтернатива. На случай, если со встроенными будут проблемы.
С TimerInit() и TimerDiff() у меня проблем никогда не было (с другими штатными функциями бывало). Кроме того, штатные почти всегда работают быстрее, пример:
Код:
#include <Timers.au3>

Global $iTimeInit, $iTimeUdfInit, $iTimeDiff, $iTimeUdfDiff, $iCheck

$i_T = TimerInit()
TimerDiff($i_T)
$i_T_Udf = _Timer_Init()
_Timer_Diff($i_T_Udf)

For $i = 1 To 10
	$iCheck = TimerInit()
	$i_T = TimerInit()
	$iTimeInit += TimerDiff($iCheck)
	$iCheck = TimerInit()
	$i_T_Udf = _Timer_Init()
	$iTimeUdfInit += TimerDiff($iCheck)
	Sleep(50)
	$iCheck = TimerInit()
	TimerDiff($i_T)
	$iTimeDiff += TimerDiff($iCheck)
	$iCheck = TimerInit()
	_Timer_Diff($i_T_Udf)
	$iTimeUdfDiff += TimerDiff($iCheck)
Next
$iTimeInit /= 10
$iTimeUdfInit /= 10
$iTimeDiff /= 10
$iTimeUdfDiff /= 10
ConsoleWrite('Not UDF Init:' & @TAB & $iTimeInit & @LF)
ConsoleWrite('With UDF Init:' & @TAB & $iTimeUdfInit & @LF)
ConsoleWrite('Result Init: ' & @TAB & $iTimeUdfInit / $iTimeInit & @LF)
ConsoleWrite('---' & @LF)
ConsoleWrite('Not UDF Diff:' & @TAB & $iTimeDiff & @LF)
ConsoleWrite('With UDF Diff:' & @TAB & $iTimeUdfDiff & @LF)
ConsoleWrite('Result Diff: ' & @TAB & $iTimeUdfDiff / $iTimeDiff & @LF)
 
Верх