Зарание извиняюсь за возможно вопрос не по теме
Использовал в своей программе такую замечательную штуку: private readonly ThreadSafeObservableCollection<MyTrade> _myfuttrades = new ThreadSafeObservableCollection<MyTrade>();
Все прекрасно работало на версии стокшарп 4.2.3.4 Сегодня решил обновится до новой 4.2.31 и получил вот такою ошибку: Error 4 'Ecng.Xaml.ThreadSafeObservableCollection<StockSharp.BusinessEntities.MyTrade>' does not contain a constructor that takes 0 arguments
Подскажите пожалуйста как мне теперь заюзать ThreadSafeObservableCollection.
Спасибо.
Комментарии (9)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
Господа разработчики , помогите пожалуйста, ответьте что-то .
Уже нашел сам , вот так нужно :
private readonly ThreadSafeObservableCollection<MyTrade> _myfuttrades = new ThreadSafeObservableCollection<MyTrade>(new ObservableCollectionEx < MyTrade>());
но зачем надо было такое делать ?
Ошибка при попытке вызвать метод Count() или isEmpty() в ThreadSafeObservableCollection , версия стокшарп 4.2.35
System.NotSupportedException was unhandled by user code HResult=-2146233067 Message=Specified method is not supported. Source=Ecng.Xaml StackTrace: at Ecng.Xaml.ThreadSafeObservableCollection
1.get_Count() at Ecng.Collections.CollectionHelper.IsEmpty(ICollection1 source)Кол-во элементов гарантированно можно подсчитать только в гуи потоке. Не в гуи потоке их кол-во хаотичное.
В версии 4.2.3.4 все работало . Как теперь с этим справится у меня почти вся визуализация построена на этих коллекциях. Никак не дойду чтобы попробовать луа изза все этих нововедений.
Если она устривает, то оставайтесь на ней. Лучшее - враг хорошего.
Полностью устраивает , но работает только с квиком 6.12 и только через ДДЕ, боюсь что-бы квик не выдал обновление несовместимое со старыми версиями, потому и думал попробовать перейти на новую версию стокшарп с Луа. Кроме этого у меня в планах переход на плазу Сгейт, придется тоже весь свой интерфейс переделывать в угоду новым тенденциям в стокшарп. Мне кажется не стоит уже вносить изменения в такие базовые елементы как Ecng.
Нарыл на просторах интернета вот такую реализацию мульти потоковой ObservableCollection, вроде работает нормально.
public class MTObservableCollection<T> : ObservableCollection<T> { public override event NotifyCollectionChangedEventHandler CollectionChanged; protected override void OnCollectionChanged(NotifyCollectionChangedEventArgs e) { var eh = CollectionChanged; if (eh != null) { Dispatcher dispatcher = (from NotifyCollectionChangedEventHandler nh in eh.GetInvocationList() let dpo = nh.Target as DispatcherObject where dpo != null select dpo.Dispatcher).FirstOrDefault();
Все таки не так роботает как хотелось бы.
Михаил , не могли бы вы выложить реализацию этих коллекций в стокшарпе версии 4.2.3.4 ?
Спасибо.