Программа не завершается из-за фоновых потоков
Интересно ни кто не сталкивался с проблемой, после закрытия программы оставались фоновые потоки, которые не дают завершиться программе. Проблема с завершением программы возникает после создания окна с графиком
work_wnd = new ChartWindow { Title = "{0} {1} {2}".Put(work_series.Security.Code,work_series.CandleType.Name, work_series.Arg)};
создавал также окно через _chartWindows.SafeAdd(work_series, key => {...}.show(); результат тот же.
В отладчике прерывал фоновый поток, который всегда останавливается на:
StockSharp.Messages.InMemoryMessageChannel,
класс BlockingPriorityQueue,
public void Open()
ThreadingHelper .Thread(() => CultureInfo.InvariantCulture.DoInCulture(() => {while (!_messageQueue.IsClosed) { ...}}.
Так понимаю, чтобы завершить этот поток нужно вызвать public void Close() {_messageQueue.Close();}
Пробовал и work_wnd.Close(); work_wnd.DoDispose(); this.Close(); this.DoDispose();
Отписывался от всех событий и Trader.Dispose();
Остается только скриптом убивать процесс в диспетчере задач.