﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/style.css'?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/bbeditor.css'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">Программа не завершается из-за фоновых потоков</title>
  <id>~/topic/5247/programma-ne-zavershaetsya-iz-za-fonovyh-potokov/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-04T10:12:44Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=5247" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/34272/</id>
    <title type="text">Может кому пригодится. Помогло только чудесно сочетание при завершении программы: protected override...</title>
    <published>2016-02-17T17:52:50Z</published>
    <updated>2016-02-17T17:53:42Z</updated>
    <author>
      <name>Виктор</name>
      <uri>https://stocksharp.com/users/26982/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Может кому пригодится. Помогло только чудесно сочетание при завершении программы:&lt;br /&gt;protected override void OnClosing(CancelEventArgs e)&lt;br /&gt;{ &lt;br /&gt;foreach (var pair in _chartWindows)&lt;br /&gt;{ &lt;br /&gt;pair.Value.DeleteHideable();&lt;br /&gt;pair.Value.Close();&lt;br /&gt;}&lt;br /&gt;....&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;т.е. [window].DeleteHideable() перед закрытием окна нужно обязательно произвести.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/34266/</id>
    <title type="text">Интересно ни кто не сталкивался с проблемой, после закрытия программы оставались фоновые потоки, кот...</title>
    <published>2016-02-16T18:32:42Z</published>
    <updated>2016-02-16T18:32:42Z</updated>
    <author>
      <name>Виктор</name>
      <uri>https://stocksharp.com/users/26982/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Интересно ни кто не сталкивался с проблемой, после закрытия программы оставались фоновые потоки, которые не дают завершиться программе. Проблема с завершением программы возникает после создания окна с графиком&lt;br /&gt;work_wnd = new ChartWindow { Title = &amp;quot;{0} {1} {2}&amp;quot;.Put(work_series.Security.Code,work_series.CandleType.Name, work_series.Arg)};&lt;br /&gt;создавал также окно через _chartWindows.SafeAdd(work_series, key =&amp;gt; {...}.show();  результат тот же.&lt;br /&gt;&lt;br /&gt;В отладчике прерывал фоновый поток, который всегда останавливается на:&lt;br /&gt;StockSharp.Messages.InMemoryMessageChannel, &lt;br /&gt;класс BlockingPriorityQueue, &lt;br /&gt;public void Open() &lt;br /&gt;ThreadingHelper .Thread(() =&amp;gt; CultureInfo.InvariantCulture.DoInCulture(() =&amp;gt; {while (!_messageQueue.IsClosed) { ...}}.&lt;br /&gt;&lt;br /&gt;Так понимаю, чтобы завершить этот поток нужно вызвать public void Close()   {_messageQueue.Close();}&lt;br /&gt;&lt;br /&gt;Пробовал и work_wnd.Close(); work_wnd.DoDispose(); this.Close(); this.DoDispose();&lt;br /&gt;Отписывался от всех событий и Trader.Dispose();&lt;br /&gt;&lt;br /&gt;Остается только скриптом убивать процесс в диспетчере задач.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>