<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: В каком потоке делать финализацию при останове скрипта?]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме В каком потоке делать финализацию при останове скрипта? форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Sun, 05 Apr 2026 08:21:35 +0300</pubDate>
		<item>
			<title>В каком потоке делать финализацию при останове скрипта?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message81976/topic9517/">В каком потоке делать финализацию при останове скрипта?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Если ставить флаг завершения скрипта в OnClose, то можно финализацию делать в main. Тогда при закрытии квика скрипты будут завершаться параллельно. <br />
			<i>12.03.2026 20:15:13, Йцукен.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message81976/topic9517/</link>
			<guid>http://forum.quik.ru/messages/forum10/message81976/topic9517/</guid>
			<pubDate>Thu, 12 Mar 2026 20:15:13 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>В каком потоке делать финализацию при останове скрипта?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message81958/topic9517/">В каком потоке делать финализацию при останове скрипта?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Похоже, скрипты в любом случае останавливаются последовательно.<br />Логи двух скриптов при закрытии QUIK 12.8.5.3<br />
====code====
<pre>11.03.26 21:34:50.907 OnStop
11.03.26 21:34:51.892 main
11.03.26 21:34:52.908 main
11.03.26 21:34:53.923 main
11.03.26 21:34:54.923 main
11.03.26 21:34:55.939 main</pre>
=============

====code====
<pre>11.03.26 21:34:56.923 OnStop
11.03.26 21:34:56.939 main
11.03.26 21:34:57.955 main
11.03.26 21:34:58.970 main
11.03.26 21:34:59.986 main
11.03.26 21:35:00.987 main
11.03.26 21:35:02.003 main</pre>
=============
<br />Видно, что OnStop второго скрипта вызывается только после завершения main первого.<br />Да и при остановке скриптов кнопкой &quot;Остановить&quot; GUI подвисает, пока скрипт полностью не остановится, независимо, в каком потоке происходит финализация. <br />
			<i>11.03.2026 21:40:55, Йцукен.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message81958/topic9517/</link>
			<guid>http://forum.quik.ru/messages/forum10/message81958/topic9517/</guid>
			<pubDate>Wed, 11 Mar 2026 21:40:55 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>В каком потоке делать финализацию при останове скрипта?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message81957/topic9517/">В каком потоке делать финализацию при останове скрипта?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			====code====
<pre>function OnStop()
&nbsp;&nbsp;run = nil
&nbsp;&nbsp;t_id = nil
end

function main()
&nbsp;&nbsp;while run do
&nbsp;&nbsp;&nbsp;&nbsp;SetCell(t_id, ...)
&nbsp;&nbsp;&nbsp;&nbsp;...
&nbsp;&nbsp;&nbsp;&nbsp;sleep(1000)
&nbsp;&nbsp;end
&nbsp;&nbsp;finalize()
end</pre>
=============
<br />Есть вероятность, что после срабатывания OnStop до удаления идентификатора таблицы (t_id = nil) main попытается записать в таблицу (SetCell)? <br />
			<i>11.03.2026 19:46:35, Йцукен.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message81957/topic9517/</link>
			<guid>http://forum.quik.ru/messages/forum10/message81957/topic9517/</guid>
			<pubDate>Wed, 11 Mar 2026 19:46:35 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>В каком потоке делать финализацию при останове скрипта?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message81955/topic9517/">В каком потоке делать финализацию при останове скрипта?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			По DestroyTable - в курсе, что её запускать лучше в OnStop <br />
			<i>11.03.2026 18:48:08, Йцукен.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message81955/topic9517/</link>
			<guid>http://forum.quik.ru/messages/forum10/message81955/topic9517/</guid>
			<pubDate>Wed, 11 Mar 2026 18:48:08 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>В каком потоке делать финализацию при останове скрипта?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message81952/topic9517/">В каком потоке делать финализацию при останове скрипта?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Если делать финализацию OnStop, то при закрытии квика скрипты будут останавливаться последовательно, т.е. ждать друг друга.<br />Если - в main, то есть вероятность, что main не уложится в отведённые 5 сек, и что-нибудь не успеет. Тогда надо в OnStop делать return побольше. Есть ли тут подводные камни?<br />Поделитесь опытом, как вы делаете? <br />
			<i>11.03.2026 17:20:39, Йцукен.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message81952/topic9517/</link>
			<guid>http://forum.quik.ru/messages/forum10/message81952/topic9517/</guid>
			<pubDate>Wed, 11 Mar 2026 17:20:39 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
