← 返回

Побайндился со Strategy.Orders

Заявки выставляю через Strategy.RegisterOrder.. Почему-то в UI попадают не все заявки.

Ecng.Collections.SynchronizedList все необходимые эвенты о своем изменении шлет? и на регулярной основе? :-)

本主题对您有帮助吗?

分享主题

评论 (6)

登录创建账户, 登录或注册以发表评论

Mikhail Sukhov
Mikhail Sukhov

Байдинг корректно работает только в своем потоке - ГУИ. А Заявки в Strategy.Orders создаются из разных потоков. Поэтому и проблемы.

sergun
sergun 作者

Mikhail Sukhov: Байдинг корректно работает только в своем потоке - ГУИ. А Заявки в Strategy.Orders создаются из разных потоков. Поэтому и проблемы. А в такой ситуации не должен быть эксепшен типа "Вы пытаетесь менять что-то в GUI из не гуишного потока"? Просто у меня все "тихо", никаких эксепшенов, а заявочки в окошке не все показываются.

Mikhail Sukhov
Mikhail Sukhov

sergun:

Mikhail Sukhov: Байдинг корректно работает только в своем потоке - ГУИ. А Заявки в Strategy.Orders создаются из разных потоков. Поэтому и проблемы. А в такой ситуации не должен быть эксепшен типа "Вы пытаетесь менять что-то в GUI из не гуишного потока"? Просто у меня все "тихо", никаких эксепшенов, а заявочки в окошке не все показываются.

Не, байдинг кушает такие исключения. Сам напоролся, когда на знал, почему некоторые значения в таблице не обновляются.

sergun
sergun 作者

Mikhail Sukhov:

sergun:

Mikhail Sukhov: Байдинг корректно работает только в своем потоке - ГУИ. А Заявки в Strategy.Orders создаются из разных потоков. Поэтому и проблемы. А в такой ситуации не должен быть эксепшен типа "Вы пытаетесь менять что-то в GUI из не гуишного потока"? Просто у меня все "тихо", никаких эксепшенов, а заявочки в окошке не все показываются.

Не, байдинг кушает такие исключения. Сам напоролся, когда на знал, почему некоторые значения в таблице не обновляются.

Ясно. спасибо! т.е. наш путь - это обработчики событий :-)

А все-таки что такое Ecng.Collections.SynchronizedList, может в нем что полезное есть на будущее? Или это просто thread-safe List<T>?

sergun
sergun 作者

Mikhail Sukhov:

sergun:

Mikhail Sukhov: Байдинг корректно работает только в своем потоке - ГУИ. А Заявки в Strategy.Orders создаются из разных потоков. Поэтому и проблемы. А в такой ситуации не должен быть эксепшен типа "Вы пытаетесь менять что-то в GUI из не гуишного потока"? Просто у меня все "тихо", никаких эксепшенов, а заявочки в окошке не все показываются.

Не, байдинг кушает такие исключения. Сам напоролся, когда на знал, почему некоторые значения в таблице не обновляются.

Кстати, Михаил, не хотите сделать свойства Orders и Trades типа ObservableCollection или чем-то подобным, поддерживающим нотификацию об изменении коллекции?

Mikhail Sukhov
Mikhail Sukhov

sergun: Кстати, Михаил, не хотите сделать свойства Orders и Trades типа ObservableCollection или чем-то подобным, поддерживающим нотификацию об изменении коллекции?

ObservableCollection не thread safe, а нужно такое. Даже если я сделаю коллекцию с нотификациями, все равно нужно производить UI маршалинг через GuiSync. И смысл отпадет от такой коллекции, потому что уже есть подобные события у самой стратегии.