Подвисает OnProcess


Подвисает OnProcess
Atom
8/8/2012


Den

Avatar
Уважаемые разработчики!

Quik 6.02, 6.3

В S# 4.1.2, 4.1.3(rev 18591) стабильно подвисает OnProcess если делаю вызовы в GUI.

Схема такая:

1. TimeFrameStrategy c интервалом 50ms.
2. В OnProcess делаются расчеты и результат показывается в GUI через вызов
в MainWindow.Instance.GuiAsync где делается апдейт а-ля TextField = value.

При прохождении от 1000 до 10000 циклов все подвисает.
Если вызовы в GUI закомментировать стратегия не виснет.

Еще она зависает периодически после вызовов addLog...

В 3.x, 4.0, 4.1 стратегии пахали весь тороговый день с 10.00 до 23.50 без проблем.

С чем это может быть связано, что можете посоветовать?

Tags:


Thanks:


1 2  >
Mikhail Sukhov

Avatar
Date: 8/8/2012
Reply


Den Go to
С чем это может быть связано, что можете посоветовать?


Поизучать стек трейсы на предмет дедлоков.
Thanks:

ra81

Avatar
Date: 8/8/2012
Reply


Да подобная беда была у меня как-то раз именно из за дедлоков. Лочилось окошко лога и дальше весь поток тоже лочился.
Thanks:

Den

Avatar
Date: 8/8/2012
Reply


Mikhail Sukhov Go to
Den Go to
С чем это может быть связано, что можете посоветовать?


Поизучать стек трейсы на предмет дедлоков.


А нету трейсов в моем роботе. Все треды от S#, в них стэк не кажется...

У меня код не менялся...
А что вы поменяли в тредах начиная с 4.1.2?
Thanks:

Den

Avatar
Date: 8/8/2012
Reply


ra81 Go to
Да подобная беда была у меня как-то раз именно из за дедлоков. Лочилось окошко лога и дальше весь поток тоже лочился.


на чем оно лочилось, как избавились?
Thanks:

ra81

Avatar
Date: 8/9/2012
Reply


Den Go to
ra81 Go to
Да подобная беда была у меня как-то раз именно из за дедлоков. Лочилось окошко лога и дальше весь поток тоже лочился.


на чем оно лочилось, как избавились?


Ну там длинная замута была достаточно. Чисто в коде моего коннектора.
http://stocksharp.com/fo...a-v-mietodie-AddInfoLog/
Thanks:

Den

Avatar
Date: 8/9/2012
Reply


Den Go to
Mikhail Sukhov Go to
Den Go to
С чем это может быть связано, что можете посоветовать?


Поизучать стек трейсы на предмет дедлоков.


А нету трейсов в моем роботе. Все треды от S#, в них стэк не кажется...

У меня код не менялся...
А что вы поменяли в тредах начиная с 4.1.2?


Лочится еще при вызове логгинга из TimeFrameStrategy.Process в ConsoleLogListener.
В моем коде нет никаких Wait'ов, Sleep'ов и т.д. У меня не начем лочиться.
Похоже это нутро S# лочится...

Вот картинка с тредами, но стек трейса ни у одного не достать:



Как дебажить дальше?

P.S. может быть имеет смысл давать имя тредам по имени стратегий, кот. они вызывают?
Понял, что на каждый вызов OnProcess из пула берется новый тред.
Thanks:

Alexander

Avatar
Date: 8/10/2012
Reply


В итоге разобрались или нет?
Если нет - попробуйте пустой OnProcess только с работой с gui.
Thanks:

Den

Avatar
Date: 8/13/2012
Reply


Alexander Mukhanchikov Go to
В итоге разобрались или нет?
Если нет - попробуйте пустой OnProcess только с работой с gui.


Не разобрался. Если в трейсах нет моего кода как мне разобраться?

Пока, действительно, остается минизировать кейс.
Thanks:

Mikhail Sukhov

Avatar
Date: 8/13/2012
Reply


Den Go to
Если в трейсах нет моего кода как мне разобраться?


В трейсах всегда должен быть код. В т.ч. и ваш. Думаю не там смотрите.
Thanks:

Den

Avatar
Date: 8/13/2012
Reply


Mikhail Sukhov Go to
Den Go to
Если в трейсах нет моего кода как мне разобраться?


В трейсах всегда должен быть код. В т.ч. и ваш. Думаю не там смотрите.


Я смотрю закладку Threads. А потом для всех тредов смотрю Call Stack. Ничего нет.
Если в OnProcess поставлю Sleep и нажму на паузу - тогда в стеке есть мой код.

Буду благодарен, если расскажете что я делаю не так и как правильно.
Я вообще java developer, а C# по аналогии юзаю :)
Thanks:
1 2  >

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy