Gangg: прогулялся по ссылке и через поиск посмотрел примеры. Действительно. Можно и так сделать. Судя по дополнительной информации вы получаете тип object. Если вы предполагаете, что он возвращает тип Hashtable, но по каким-то причинам этого не происходит, то можно сделать следующее: можно попробовать сделать принудительное приведение типа к HashTable, либо сделать точку останова на 29й строке, буквально перед foreach, и посмотреть возвращаемое содержимое jsonDecode, и по нему принять решение с манипуляцией типов данных.
Предлагаемый пример:
foreach(DictionaryEntry item in ((Hashtable)jsonDecode))
{
// ваш код
}
Берите просто Core i7-6700, раз уж на то пошло. Не понимаю, зачем вам К-индекс. К-индекс считается классом процессоров для разгона, а не только производительности. По производительности на одной частоте они будут одинаковыми абсолютно. Изначально Intel сделала так, что простые процессоры не могут в разгоны ударяться, но получают поддержку виртуализации для виртуальных машин, а К-серия может в разгон, но не может в виртуализацию. Такая цена.
Получилось. Правда, иначе. На самом деле необходимо было добавить ContentPresenter в TextBlock и забиндить по Content через TemplateBinding. Но спасибо за наводку.
Егор Друщенко: ну я учил сперва на QBasic, затем на VisualBasic.NET. Чуть позже начал изучать Java. В универе начал изучать Pascal, затем C++. А C# я изучал самостоятельно во время учёбы в универе. Теперь работаю на C#. Язык быстрее всего изучается, когда ты занят каким-нибудь проектом, использующий тот или иной язык программирования. Например, за год работы на C# я освоил этот язык гораздо больше, чем за несколько лет изучения языка.
Егор Друщенко: а смысл сконцентрироваться на каком-то одном языке? Лучше знать несколько языков. Как-никак разные языки адаптированы для конкретного круга задач. Не бывает универсальных решений. С++ - конечно, мощный язык программирования. Но с ним работать - как с бритвой с одним лезвием. Но на C# можно писать и производительные программы. Важны алгоритмы и нюансы языков программирования. Будет лучше, если скомбинировать это всё, используя лучшие стороны каждого из них. Например. Всё, что требуется для высоких показателей производительности, писать на С++, а взаимодействие, логика и прочее, писать на C#. Например, именно так написаны программы MS Office.
АртемЪ: SiliconPower - хороший производитель. У меня на ноуте используется. Раньше он работал ещё на компе. Позже перекочевал на ноут, когда мне понадобился SSD ёмкостью побольше для компа.
Goto - весьма опасная вещь. Ими можно пользоваться, если знаешь, что делаешь. Иначе это может привести к непредсказуемым последствиям: от потери производительности до серьёзных проблем с безопасностью. По мере возрастания сложности структуры программы можно легко запутаться в goto или потерять его. Таким лучше пользоваться только в ассемблере, который называется ещё jump (jmp, br в зависимости от производителя). А так лучше пользоваться switch. Достаточно простой и практичный.
MonkAlex: А в чём разница между Dispatcher.CurrentDispatcher и Application.Current.Dispatcher? Для _disp я использовал тип Dispatcher. А для Application.Current.Dispatcher, получается, что нужно использовать тип Application? Просто данные идут не сразу на форму UI. А проходят дополнительную обработку. Или для начала мне выполнить сразу полную обработку, а потом уже через Dispatcher выводить данные на форму?
Я реализовал его. Правда, без sender. Но тем не менее, работает.
#region Обработка событий по изменению содержимых.
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(string propertyName = "")
{
_disp.Invoke(() => { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); });
//PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
#endregion
Я так понял, что _disp использует тип Dispatcher? А в sender кидать данные из свойств? Например:
public string Description
{
get { return _Description; }
set { _Description = value; NotifyPropertyChanged( value, "Description"); }
}
Вячеслав Бобров: обычно отдельно идёт. Но можно дописывать в файл. Главное, потом не забыть учесть его при проверке. Не знаю, как реализовано в NET. У меня используется собственная реализация. Так как у меня немного специфическая реализация.
Вячеслав Бобров: Любая операция требует параллельного выполнения. Даже старая. Вот вижу я, что там используется блок длиной 256 бит. Проще это всё гонять через SIMD. Стандартный SIMD AVX как раз имеет регистры 256 бит.
Вячеслав Бобров: Ну как бы считается старой вроде, если меня память не изменяет. Для паролей действительно лучше не применять. А вот целостность программных модулей вполне можно. Но я использую простой вариант: CRC32 / POSIX. Правда, у меня небольшие данные. Поэтому хватает за глаза и традиционного метода без распараллеливания.
Отметил выше, что есть специальные версии Linux без поддержки страниц. Называются такие системы: μClinux. На микроконтроллере могут запускать только такие системы, а также RTOS.
в абзаце перед вами есть подсказка: 2₃ → 1͞1₃. То есть 3 - 1 = 2. Для асимметричной максимальное значение будет равно 2. Если число 20₃, то будет 1͞10₃.
Предлагаемый пример:
foreach(DictionaryEntry item in ((Hashtable)jsonDecode))
{
// ваш код
}