<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: перестает работать таймер]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=14282</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=14282&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: перестает работать таймер».]]></description>
		<lastBuildDate>Sat, 27 Oct 2018 22:37:28 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: перестает работать таймер]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=129525#p129525</link>
			<description><![CDATA[<p>Спасибо за объяснения.</p>]]></description>
			<author><![CDATA[null@example.com (Karagiozis)]]></author>
			<pubDate>Sat, 27 Oct 2018 22:37:28 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=129525#p129525</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: перестает работать таймер]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=129524#p129524</link>
			<description><![CDATA[<p><strong>MandarinKa02</strong>, это не выход.<br /><strong>Karagiozis</strong>, следующий таймер не работает потому что не завершается метка предыдущего. Goto переводит в бесконечный цикл и Return не достигается.<br />То что вы хотите реализовать красиво в одном процессе не выйдет потому что язык однопоточный.<br />Можете попробовать перед Goto отключить таймер и установить заново, однако каждое срабатывание будет увеличивать стек вызовов, что ограничавает их кол-во.<br />Вообще старайтесь не пользовать GoTo. И кстати, зачем транслит? Пишите вернулся().</p>]]></description>
			<author><![CDATA[null@example.com (stealzy)]]></author>
			<pubDate>Sat, 27 Oct 2018 21:37:02 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=129524#p129524</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: перестает работать таймер]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=129522#p129522</link>
			<description><![CDATA[<div class="codebox"><pre><code>#Persistent

SetTimer, stuck, 200

Goto, start

return

;эмулируем ситуацию 
F2::
stuck := 1
return

start:
	Loop
	{
		take()
		sleep 500
		otnes()
		sleep 500
		vernylsya()
		sleep 500
	}
return

stuck:
ToolTip, %A_TickCount% ,100,150, 2
if (stuck == 1)
{
	ToolTip, Что-то пошло не так: %A_TickCount% ,100,150, 2
	vernylsya()
	stuck := 0
}
return

take()
{
	ToolTip, Взял,100,100, 1
}

otnes()
{
	ToolTip, отнес делаль,100,100, 1
}

vernylsya()
{
	ToolTip, вернулся обратно,100,100, 1
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (MandarinKa02)]]></author>
			<pubDate>Sat, 27 Oct 2018 20:59:34 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=129522#p129522</guid>
		</item>
		<item>
			<title><![CDATA[AHK: перестает работать таймер]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=129520#p129520</link>
			<description><![CDATA[<p>Помогите. Уже целый час бьюсь и пытаюсь понять почему таймер перестает работать?<br />Написал короткий код который показывает саму суть, что бы понятнее было.</p><p>Мне нужен Loop, который вызывает функции по очереди по кругу и нужен таймер который следил бы если что то происходит не так, то он вызывает функцию vernylsya()&nbsp; и начинает все сначало.<br />Для эмуляции что что-то не так надо нажать F2. После нажатия функция vernylsya() срабатывает, код переходит делать все с начало, но следящий таймер уже не работает.</p><div class="codebox"><pre><code>#Persistent

SetTimer, stuck, 200

Goto, start

return

;эмулируем ситуацию 
F2::
stuck := 1
return

start:
	Loop
	{
		take()
		sleep 500
		otnes()
		sleep 500
		vernylsya()
		sleep 500
	}
return

stuck:
ToolTip, %A_TickCount% ,100,150, 2
if (stuck == 1)
{
	ToolTip, Что-то пошло не так: %A_TickCount% ,100,150, 2
	vernylsya()
	stuck := 0
	Goto, start
}
return

take()
{
	ToolTip, Взял,100,100, 1
}

otnes()
{
	ToolTip, отнес делаль,100,100, 1
}

vernylsya()
{
	ToolTip, вернулся обратно,100,100, 1
}</code></pre></div><p>Даже если засунуть таймер в Loop то все равно таймер не возобновляет работу<br /></p><div class="codebox"><pre><code>#Persistent

SetTimer, stuck, 200

Goto, start

return

;эмулируем ситуацию 
F2::
stuck := 1
return

start:
	Loop
	{
		SetTimer, stuck, 200
		take()
		sleep 500
		otnes()
		sleep 500
		vernylsya()
		sleep 500
	}
return

stuck:
ToolTip, %A_TickCount% ,100,150, 2
if (stuck == 1)
{
	ToolTip, Что-то пошло не так: %A_TickCount% ,100,150, 2
	vernylsya()
	stuck := 0
	Goto, start
}
return

take()
{
	ToolTip, Взял,100,100, 1
}

otnes()
{
	ToolTip, отнес делаль,100,100, 1
}

vernylsya()
{
	ToolTip, вернулся обратно,100,100, 1
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Karagiozis)]]></author>
			<pubDate>Sat, 27 Oct 2018 19:40:54 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=129520#p129520</guid>
		</item>
	</channel>
</rss>
