← Atrás

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

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

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

¿Le resultó útil este tema?

Compartir tema

Comentarios (6)

Iniciar sesión o Crear cuenta, Inicie sesión o regístrese para dejar un comentario

Mikhail Sukhov
Mikhail Sukhov

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

sergun
sergun Autor

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

Mikhail Sukhov
Mikhail Sukhov

sergun:

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

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

sergun
sergun Autor

Mikhail Sukhov:

sergun:

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

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

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

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

sergun
sergun Autor

Mikhail Sukhov:

sergun:

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

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

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

Mikhail Sukhov
Mikhail Sukhov

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

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