Потокобезопасность
Atom
30.10.2010


Михаил, добрый день/вечер/утро, при написании коннектора к транзаку возникло несколько вопросов про iTrader-решил что проще спросить сразу у Вас чем тестировать самому. Если я правильно понимаю, то скажем для того чтобы узнать что у Security что-то изменилось достаточно попросить у iTrader все security и подписаться на событие INotifyPropertyChanged у нужной? Если это так то Security потокобезопасна? Ведь поток Callback изменяет данные, а пользователь может их запросить из любого потока.

Теги:


Спасибо:


Mikhail Sukhov

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


Обращение к свойствам Security потокобезопасно и не зависит от количества потоков. Потому что это обращение к обычной переменной.
Спасибо:

anothar

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


Оно безопасно если при этом callback поток(т.е. поток который принимает данные с сервера) не начнет менять ее свойства. Это относится не только к security. То же самое если например мы передаем коллекцию пользователю, а в этот момент в нее другой поток что-то добавляет9 по умолчанию коллекции не потокобезопасны.
Спасибо:

Mikhail Sukhov

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


Андрей Ефимов
Оно безопасно если при этом callback поток(т.е. поток который принимает данные с сервера) не начнет менять ее свойства. Это относится не только к security. То же самое если например мы передаем коллекцию пользователю, а в этот момент в нее другой поток что-то добавляет9 по умолчанию коллекции не потокобезопасны.


Коллекции != свойство. Коллекции имеют сложную структуру. Свойства (такие как у Security) атомарны и потокобезопасны.
Спасибо:

anothar

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


Спасибо. Михаил. Вы правы))) А есть ли у Вас какая-то потокобезопасная коллекция(какая коллекция возвращается в QuikTrader)? а то я не нашел в апи справку по Ecng.Common((
Спасибо:

Mikhail Sukhov

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


Андрей Ефимов
Спасибо. Михаил. Вы правы))) А есть ли у Вас какая-то потокобезопасная коллекция(какая коллекция возвращается в QuikTrader)? а то я не нашел в апи справку по Ecng.Common((


Ecng.Collection.SynchronizedXXX
Спасибо:

Иванов Андрей

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


Пишите под .NET 4, там для всех типов коллекций есть многопоточные коллекции -- вам же не надо сохранять обратную совместимость для кучи клиентов =)

Неймспейс System.Collections.Concurrent.
Спасибо:


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

loading
clippy