<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: про нити - хуки против таймеров]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=10071&amp;type=atom" />
	<updated>2014-10-27T21:08:15Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=10071</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: про нити - хуки против таймеров]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=87793#p87793" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Drugoy пишет:</cite><blockquote><p>Иногда во 2-ой вкладке, где в реальном времени отслеживаются процессы - всё-таки происходят какие-то коллизии и мёртвые скрипты остаются в списке.<br />А ещё на 1-ой вкладке происходят глюки с иконками, но это уже к производительности/надёжности самого AHK, а не к вопросу про нити.</p></blockquote></div><p>Ради интереса написал подобный скрипт, всё работает нормально. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2014-10-27T21:08:15Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=87793#p87793</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: про нити - хуки против таймеров]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=87791#p87791" />
			<content type="html"><![CDATA[<p><a href="http://forum.script-coding.com/viewtopic.php?pid=87779#p87779">Сегодня тоже обсуждали.</a></p><p>В качестве досужих раздумий: <br />Перед запуском таймера записывать события в массив, например в ключ A_TickCount, и уже после его обработки - удалять этот ключ.</p><p>Цикл For K, V in Arr сам отсортирует от ранних до последних (это про ключ A_TickCount).</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2014-10-27T20:18:45Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=87791#p87791</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: про нити - хуки против таймеров]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=87788#p87788" />
			<content type="html"><![CDATA[<p>Похоже, что коллизии всё-таки возникают.<br /><a href="https://github.com/Drugoy/Autohotkey-scripts-.ahk/blob/master/ScriptManager.ahk/MasterScript.ahk">Скрипт</a> + <a href="https://github.com/Drugoy/Autohotkey-scripts-.ahk/blob/master/ScriptManager.ahk/MasterScript_settings.ini">образец настроек</a> к нему.<br />Иногда во 2-ой вкладке, где в реальном времени отслеживаются процессы - всё-таки происходят какие-то коллизии и мёртвые скрипты остаются в списке.<br />А ещё на 1-ой вкладке происходят глюки с иконками, но это уже к производительности/надёжности самого AHK, а не к вопросу про нити.</p>]]></content>
			<author>
				<name><![CDATA[Drugoy]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27463</uri>
			</author>
			<updated>2014-10-27T19:51:29Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=87788#p87788</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: про нити - хуки против таймеров]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=87730#p87730" />
			<content type="html"><![CDATA[<p>До сих пор не слышал, чтобы потоки называли нитями. Однако, в <a href="https://ru.wikipedia.org/wiki/%CC%ED%EE%E3%EE%EF%EE%F2%EE%F7%ED%EE%F1%F2%FC">Wikipedia</a> даже по этому поводу есть примечание.</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2014-10-25T16:54:22Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=87730#p87730</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: про нити - хуки против таймеров]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=87715#p87715" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>ypppu пишет:</cite><blockquote><p>Что значит слово &quot;нити&quot; в названии темы?</p></blockquote></div><p><strong>ypppu</strong>, по ходу threads - потоки. Иногда их называют - нити.</p>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2014-10-25T14:11:59Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=87715#p87715</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: про нити - хуки против таймеров]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=87714#p87714" />
			<content type="html"><![CDATA[<p>Что значит слово &quot;нити&quot; в названии темы?</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2014-10-25T11:44:53Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=87714#p87714</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: про нити - хуки против таймеров]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=87712#p87712" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>таймер останавливается, если открыто контекстное меню</p></blockquote></div><p>Насколько помню, такое ещё происходит при перетаскивании за заголовок GUI скрипта.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2014-10-25T07:31:06Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=87712#p87712</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: про нити - хуки против таймеров]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=87709#p87709" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Drugoy пишет:</cite><blockquote><p>Проверил, но ничего не понял. Вроде коллизий нет, но не уверен, что они невозможны.</p></blockquote></div><p>Что вы называете коллизиями?</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2014-10-25T01:40:31Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=87709#p87709</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: про нити - хуки против таймеров]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=87705#p87705" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Drugoy пишет:</cite><blockquote><p>Какое-то очень не очевидное поведение и которое, похоже, нельзя побороть.</p></blockquote></div><p>Как раз очевидное, <a href="http://ahkscript.org/docs/commands/SetTimer.htm#Precision">SetTimer</a>:<br /></p><div class="quotebox"><blockquote><p>Although timers will operate when the script is suspended, they will not run if the current thread has &quot;Thread NoTimers&quot; in effect or whenever any thread is paused. In addition, <strong>they do not operate when the user is navigating through one of the script&#039;s menus</strong> (such as the <strong>tray icon menu</strong> or a menu bar).</p></blockquote></div><p><a href="http://ahkscript.org/docs/commands/OnMessage.htm#Remarks">И ещё</a>:<br /></p><div class="quotebox"><blockquote><p>If a monitored message that is numerically less than 0x312 arrives while <strong>the script is absolutely uninterruptible</strong> -- such as <strong>while a menu is displayed</strong>...</p></blockquote></div>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2014-10-24T18:42:38Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=87705#p87705</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: про нити - хуки против таймеров]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=87702#p87702" />
			<content type="html"><![CDATA[<p>Проверил, но ничего не понял. Вроде коллизий нет, но не уверен, что они невозможны.</p><p>И ещё: таймер останавливается, если открыто контекстное меню у иконки скрипта в трее. Какое-то очень не очевидное поведение и которое, похоже, нельзя побороть.</p>]]></content>
			<author>
				<name><![CDATA[Drugoy]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27463</uri>
			</author>
			<updated>2014-10-24T17:34:46Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=87702#p87702</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: про нити - хуки против таймеров]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=87624#p87624" />
			<content type="html"><![CDATA[<p>А вы проверьте. Делов-то на 5 минут.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2014-10-21T12:10:52Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=87624#p87624</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: про нити - хуки против таймеров]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=87621#p87621" />
			<content type="html"><![CDATA[<p>То же и с рутиной таймера? Если я выставил слишком мелкий период между таймерами, последующий будет прерывать предыдущий?</p><p>Всегда ли новый поток прерывает старый? Т.е. может такое случиться, что и таймер так попадёт по времени, что может перебить выполнение действий из хука?</p>]]></content>
			<author>
				<name><![CDATA[Drugoy]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27463</uri>
			</author>
			<updated>2014-10-21T11:49:36Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=87621#p87621</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: про нити - хуки против таймеров]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=87618#p87618" />
			<content type="html"><![CDATA[<p>Новый поток прерывает старый на время, пока сам выполняется. Потом старый будет продолжен.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2014-10-21T09:49:56Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=87618#p87618</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: про нити - хуки против таймеров]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=87612#p87612" />
			<content type="html"><![CDATA[<p>Вопросы про таймеры я начал задавать <a href="http://forum.script-coding.com/viewtopic.php?id=8785&amp;p=2">здесь</a>, но возникли ещё вопросы про это, а там это оффтопик.</p><p>Итак вопрос по поводу прерываний:<br />Есть у меня в скрипте 3 хука: один следит за появлением новых процессов, второй за смертью процессов, а третий за появлением/исчезанием новых дисков.</p><p>При каждом из этих событий требуется выполнить определённый объём вычислений, обновить содержимое массивов и перелопатить их после этого, выполняя определённые действия с каждой вещью из массива.</p><p>Т.к.<br />а). мне было сказано, что выполнять обработку внутри функции хука это не комильфо, и что надо бы обработку вынести в таймер;<br />б). похоже, что хуком следить за состоянием других процессов и других скриптов нельзя</p><p>То возник главный вопрос:<br />Если я обработку всех этих событий переложу на таймер, то как он поведёт себя, в случае если пока выполняется его рутина - возникнет какое-то новое событие, которое отловит хук и после которого надо либо дождаться завершения текущей обработки по таймеру, либо отменить её и начать обработку заново? перервёт ли хук рутину таймера?</p>]]></content>
			<author>
				<name><![CDATA[Drugoy]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27463</uri>
			</author>
			<updated>2014-10-21T09:19:19Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=87612#p87612</id>
		</entry>
</feed>
