Подвисает OnProcess
Atom
08.08.2012


Den

Фотография
Уважаемые разработчики!

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 без проблем.

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

Теги:


Спасибо:


< 1 2 
ra81

Фотография
Дата: 14.08.2012
Ответить


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


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


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

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


На вкладке с тредами, где написан статус треда, тыкнуть на стрелочку вниз и развернется последовательность вызовов. То есть что было вызвано до текущего лока. Вот собственно если посмотреть эти последовательности, можно определить где собственно затык случился.

ПС: судя по тому что вижу, каждый стакан по инструменту прет в отдельном треде, это интересно.
Спасибо:

Den

Фотография
Дата: 14.08.2012
Ответить


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


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


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

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


На вкладке с тредами, где написан статус треда, тыкнуть на стрелочку вниз и развернется последовательность вызовов. То есть что было вызвано до текущего лока. Вот собственно если посмотреть эти последовательности, можно определить где собственно затык случился.


Ну именно так я и делал.
[External Code] было мне ответом...)
Спасибо:

ra81

Фотография
Дата: 15.08.2012
Ответить


Den


Ну именно так я и делал.
[External Code] было мне ответом...)


Экспресс версия студии чтоли? Тока в ней все порезано почикано, что ничего не сделать толком.
Спасибо:

Den

Фотография
Дата: 15.08.2012
Ответить


ra81 Перейти
Den


Ну именно так я и делал.
[External Code] было мне ответом...)


Экспресс версия студии чтоли? Тока в ней все порезано почикано, что ничего не сделать толком.


Нормальная студия. Когда я ставлю брейк или Sleep в своем коде, то показывыется стек
с вызовами в моем коде на одном из тредов. На всех остальных [External Code].

Когда все подвисает как я описал в самом начале, на всех тредах наблюдаю [External Code].
Спасибо:

ra81

Фотография
Дата: 16.08.2012
Ответить


Den Перейти
ra81 Перейти
Den


Ну именно так я и делал.
[External Code] было мне ответом...)


Экспресс версия студии чтоли? Тока в ней все порезано почикано, что ничего не сделать толком.


Нормальная студия. Когда я ставлю брейк или Sleep в своем коде, то показывыется стек
с вызовами в моем коде на одном из тредов. На всех остальных [External Code].

Когда все подвисает как я описал в самом начале, на всех тредах наблюдаю [External Code].


Вообще даже если код не собственный стек показывается. Включая стокшарп вызовы. Тока так крякозябры. Режим дебаг? Я даж не знаю что предположить :)
Спасибо: Den

Den

Фотография
Дата: 16.08.2012
Ответить


ra81 Перейти
Den Перейти
ra81 Перейти
Den


Ну именно так я и делал.
[External Code] было мне ответом...)


Экспресс версия студии чтоли? Тока в ней все порезано почикано, что ничего не сделать толком.


Нормальная студия. Когда я ставлю брейк или Sleep в своем коде, то показывыется стек
с вызовами в моем коде на одном из тредов. На всех остальных [External Code].

Когда все подвисает как я описал в самом начале, на всех тредах наблюдаю [External Code].


Вообще даже если код не собственный стек показывается. Включая стокшарп вызовы. Тока так крякозябры. Режим дебаг? Я даж не знаю что предположить :)


А вот это была очень полезная информация. Я просто об этом не знал :)
Спасибо!

Сразу нарыл решение на stackoverflow:

Go into Tools | Options | Debugging | General, and uncheck the "Enable Just My Code" checkbox. Now Visual Studio will show the full call stack (at least for managed code, you still may see some "native to managed transitions" in there).
Спасибо:
< 1 2 

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy