<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Вопрос по тредам и SetBatchLines]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=17870&amp;type=atom" />
	<updated>2023-07-23T06:29:27Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=17870</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вопрос по тредам и SetBatchLines]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=158868#p158868" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>ypppu пишет:</cite><blockquote><p>В AutoHotkey принято между окончанием выполнения одной команды и началом выполнения другой команды вставлять небольшой перерывчик: если ничего в скрипте не прописывать, SetBatchLines = 10 мс. Эту настройку можно менять.<br />Чтобы этот перерывчик сделать как можно меньше, следует прописать SetBatchLines -1</p></blockquote></div><p>Это всё неверно. Прочитай внимательнее справку.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2023-07-23T06:29:27Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=158868#p158868</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вопрос по тредам и SetBatchLines]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=158867#p158867" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>stuermer пишет:</cite><blockquote><p>Зачем нужен SetBatchLines, если есть Sleep()? Если PLC тут и не пахнет.</p></blockquote></div><div class="quotebox"><cite>stuermer пишет:</cite><blockquote><p> Если время выполнения задачи превышает время цикла (например, при использовании оператора цикла FOR/LOOP, т.е. будет цикл в цикле), то происходит сбой и надо увеличить время цикла.</p></blockquote></div><p>В AutoHotkey нет такого понятия, как &quot;превысить время цикла&quot;. Тут команда выполняется до тех пор, пока она не будет выполнена, сколько бы времени на это ни пришлось потратить.</p><p>В AutoHotkey принято между окончанием выполнения одной команды и началом выполнения другой команды вставлять небольшой перерывчик: если ничего в скрипте не прописывать, SetBatchLines = 10 мс. Эту настройку можно менять.<br />Чтобы этот перерывчик сделать как можно меньше, следует прописать <strong><em>SetBatchLines -1</em></strong>. При таких настройках скрипт станет выполнять команды вообще без перекуров. При этом, когда задача достаточно объёмная, в Диспетчере задач наблюдается загрузка процессорного ядра до 100%.</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2023-07-22T20:50:34Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=158867#p158867</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вопрос по тредам и SetBatchLines]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=158865#p158865" />
			<content type="html"><![CDATA[<p>Начнём с того, что SetBatchLines вообще сейчас не особо нужен, это наследие древних версий AHK или AutoIt. Возможно раньше, когда процессоры были менее мощными, использование пауз в процессе выполнения потока имело смысл, чтобы снизить нагрузку на процессор. В актуальной версии AHK (v2) по умолчанию паузы вообще не вставляются и SetBatchLines не используется. С другой стороны, в высоконагруженных циклах всё равно чаще всего нужно вставлять Sleep.<br />В чём отличие от Sleep? SetBatchLines — это более общая настройка, один раз установил, и не паришься, а Sleep бы пришлось постоянно вставлять в разные места скрипта.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2023-07-21T19:35:30Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=158865#p158865</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вопрос по тредам и SetBatchLines]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=158863#p158863" />
			<content type="html"><![CDATA[<p>Есть еще и Soft-PLC на промышленных ПК под Windows, с кнопками как на клавиатуре.<br />И визуализация, например WinCC - со скриптами VBScript, но это уже если дальше развивать тему.</p><p>Вы по делу аргумент не опровергли: Зачем нужен SetBatchLines, если есть Sleep()? Если PLC тут и не пахнет.</p>]]></content>
			<author>
				<name><![CDATA[stuermer]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=42062</uri>
			</author>
			<updated>2023-07-21T17:36:50Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=158863#p158863</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вопрос по тредам и SetBatchLines]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=158861#p158861" />
			<content type="html"><![CDATA[<p>Ну вот видите, ваша пресловутая фантазия даже не позволила вам сообразить, что про происхождение BASIC от PLC это была шутка. Честно говоря, я думал, что вы были способны её понять.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2023-07-21T16:13:50Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=158861#p158861</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вопрос по тредам и SetBatchLines]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=158860#p158860" />
			<content type="html"><![CDATA[<p>Говориться так: &quot;ни ума, ни фантазии&quot;.<br />Как я уже писал, в вашей стране &quot;за базар&quot; надо отвечать. Поэтому фразу про зуб удалите, пока этим никто не воспользовался.</p>]]></content>
			<author>
				<name><![CDATA[stuermer]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=42062</uri>
			</author>
			<updated>2023-07-21T15:58:47Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=158860#p158860</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вопрос по тредам и SetBatchLines]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=158857#p158857" />
			<content type="html"><![CDATA[<p><strong>stuermer</strong><br />Я бы посмотрел на ситуацию с другого ракурса: вы научились когда-то программированию PLC, и теперь всё время пытаетесь натянуть эту сову на любой глобус. Как говорится, старую собаку новым трюкам научишь. Может, это как раз вам немного не хватает фантазии? <img src="//forum.script-coding.com/img/smilies/wink.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>2023-07-21T13:06:21Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=158857#p158857</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вопрос по тредам и SetBatchLines]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=158856#p158856" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Alectric пишет:</cite><blockquote><p>Нет. Таймер это прерывание по времени, потому, что он прерывает основной поток чтобы выполнить код подпрограммы. https://prog-cpp.ru/micro-interrupts/</p></blockquote></div><p>Так это в переносном смысле написано. У тебя тоже фантазии нету. Таймер это АНАЛОГ цикла ПЛК. Потому, что повторное выполнение. Ясно, что ПЛК это не ПК. Невозможно спорить с ограниченными людьми без фантазии.</p><div class="quotebox"><blockquote><p>Это в кодесисе таймер это цикл ПЛК</p></blockquote></div><p>В Codesys таймер это таймер, а цикл это цикл. <br />А в AHK таймер это цикл ПЛК - в переносном значении!</p>]]></content>
			<author>
				<name><![CDATA[stuermer]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=42062</uri>
			</author>
			<updated>2023-07-21T11:11:10Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=158856#p158856</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вопрос по тредам и SetBatchLines]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=158852#p158852" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>stuermer пишет:</cite><blockquote><p>Таймер это настоящий цикл PLC, потому, что там есть реально повторное выполнение подпрограммы</p></blockquote></div><p>Нет. Таймер это прерывание по времени, потому, что он прерывает основной поток чтобы выполнить код подпрограммы. <a href="https://prog-cpp.ru/micro-interrupts/">https://prog-cpp.ru/micro-interrupts/</a><br />Это в кодесисе таймер это цикл ПЛК, и то это можно перенастроить на &quot;свободное выполнение&quot; и программа будет выполняться в любое удобное для нее время, если у процессора будет свободное время.</p><div class="quotebox"><cite>stuermer пишет:</cite><blockquote><p>То, что ты написал, это цикл в цикле. Потому, что у тебя loop в таймере.</p></blockquote></div><p>Loop в таймере это чтобы &quot;симулировать&quot; долгое время выполнения кода подпрограммы таймера, вместо этого &quot;loop&quot; вообрази, фантазией, много строк полезного кода.</p><p>OFF: Напоминаешь ты мне одного товарища, который любит поспорить просто чтобы поспорить, даже если понимает что неправ.</p>]]></content>
			<author>
				<name><![CDATA[Alectric]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26027</uri>
			</author>
			<updated>2023-07-20T18:02:49Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=158852#p158852</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вопрос по тредам и SetBatchLines]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=158851#p158851" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>stuermer пишет:</cite><blockquote><p>Basic не создан по подобию PLC</p></blockquote></div><p>Как же так? Ведь всё создано по подобию PLC, значит и Basic тоже!</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2023-07-20T16:15:12Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=158851#p158851</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вопрос по тредам и SetBatchLines]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=158850#p158850" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>Но BASIC то уж точно создан по подобию PLC, зуб даю.</p></blockquote></div><p>Basic не создан по подобию PLC. В вашей стране лучше так не шутить. За такие заявления, можно действительно зуба лишиться)).</p>]]></content>
			<author>
				<name><![CDATA[stuermer]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=42062</uri>
			</author>
			<updated>2023-07-20T16:10:23Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=158850#p158850</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вопрос по тредам и SetBatchLines]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=158849#p158849" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong> Я AutoIt не знаю. Речь шла о том, что SetBatchLines это аналог длительности цикла в PLC.<br />Другой пример - функции WinWaitActive. Это то же самое, что графический язык программирования Motion Chart в системе Simotion фирмы Siemens. Управление системами позиционирования.</p>]]></content>
			<author>
				<name><![CDATA[stuermer]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=42062</uri>
			</author>
			<updated>2023-07-20T16:06:19Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=158849#p158849</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вопрос по тредам и SetBatchLines]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=158848#p158848" />
			<content type="html"><![CDATA[<p>Нет, AutoIt создан по подобию BASIC. Но BASIC то уж точно создан по подобию PLC, зуб даю.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2023-07-20T15:58:22Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=158848#p158848</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вопрос по тредам и SetBatchLines]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=158846#p158846" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong> Значит AutoIt создан создан по подобию PLC, а AHK это следующая производная. Наверняка там тоже есть такой функционал. <br />Фантазия - очень полезная вещь в жизни.</p><p>&quot;Узкий специалист подобен флюсу: полнота его односторонняя.&quot;<br />Козьма Прутков</p>]]></content>
			<author>
				<name><![CDATA[stuermer]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=42062</uri>
			</author>
			<updated>2023-07-20T15:48:20Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=158846#p158846</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вопрос по тредам и SetBatchLines]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=158845#p158845" />
			<content type="html"><![CDATA[<p><strong>Alectric</strong><br />Если ты PLC программируешь, это еще не значит, что ты в этом что-то понимаешь. <br />Таймер это настоящий цикл PLC, потому, что там есть реально повторное выполнение подпрограммы. Если запустить отладчик AHK и делать Refresh то это будет видно. А SetBatchLines это симуляция цикла, чтобы было похоже на PLC. Если есть и таймер и SetBatchLines то поток подпрограммы будет прерываться. То, что таймер сам себе задержку создает, если быстрее выполнит подпрограмму, я писал.<br />То, что ты написал, это цикл в цикле. Потому, что у тебя loop в таймере.</p>]]></content>
			<author>
				<name><![CDATA[stuermer]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=42062</uri>
			</author>
			<updated>2023-07-20T15:41:38Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=158845#p158845</id>
		</entry>
</feed>
