Михаил, добрый день/вечер/утро, при написании коннектора к транзаку возникло несколько вопросов про iTrader-решил что проще спросить сразу у Вас чем тестировать самому. Если я правильно понимаю, то скажем для того чтобы узнать что у Security что-то изменилось достаточно попросить у iTrader все security и подписаться на событие INotifyPropertyChanged у нужной? Если это так то Security потокобезопасна? Ведь поток Callback изменяет данные, а пользователь может их запросить из любого потока.
Комментарии (6)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
Обращение к свойствам Security потокобезопасно и не зависит от количества потоков. Потому что это обращение к обычной переменной.
Оно безопасно если при этом callback поток(т.е. поток который принимает данные с сервера) не начнет менять ее свойства. Это относится не только к security. То же самое если например мы передаем коллекцию пользователю, а в этот момент в нее другой поток что-то добавляет9 по умолчанию коллекции не потокобезопасны.
Коллекции != свойство. Коллекции имеют сложную структуру. Свойства (такие как у Security) атомарны и потокобезопасны.
Спасибо. Михаил. Вы правы))) А есть ли у Вас какая-то потокобезопасная коллекция(какая коллекция возвращается в QuikTrader)? а то я не нашел в апи справку по Ecng.Common((
Ecng.Collection.SynchronizedXXX
Пишите под .NET 4, там для всех типов коллекций есть многопоточные коллекции -- вам же не надо сохранять обратную совместимость для кучи клиентов =)
Неймспейс System.Collections.Concurrent.