Posts Tagged ‘.NET 4’

Thread-safe структуры данных .NET 4 (ч. 1)

Воскресенье, Май 6th, 2012 Нет комментариев

Under : , , , ,

.NET 4 содержит богатый набор средств, упрощающих распараллеливание кода. Если мы начинаем обрабатывать некоторый набор данных одновременно в нескольких потоках, то автоматически поднимается вопрос о синхронизации выполнения этих потоков, в частности о том, где хранить результаты обработки. Существует достаточно способов координировать потоки между собой, и всегда можно реализовать любой из них. Но создатели Parallel Extensions уже позаботились об этом, и в состав .NET  4 был включен ряд «потокобезопасных» структур данных. Реализован набор наиболее популярных коллекций, с которыми я и предлагаю ознакомиться.

(далее…)

Thread-safe структуры данных .NET 4 (ч.2)

Суббота, Май 5th, 2012 Нет комментариев

Under : , , , ,

BlockingCollection<T> — эта потокобезопасная коллекция называется блокирующей, поскольку действует по следующему принципу:

  • Если коллекция пустая, и некоторый код пытается извлечь элемент, то поток, в котором он выполняется, блокируется до появления хотя бы одного элемента;
  • Если коллекция уже содержит максимальное число элементов, то поток, в котором пытаются добавить новый элемент, блокируется до тех пор, пока место не будет освобождено.

(далее…)

Программируем для Windows 7 в Visual Studio 2010

Четверг, Май 3rd, 2012 Нет комментариев

Under : , , , , ,

Несколько недель назад, всего за два дня до релиза Windows 7 , разработка Visual Studio достигла очередного важного этапа — стала доступна вторая CTP-сборка Visual Studio 2010, также известная как Visual Studio  2010 Beta 2. Мне всегда было интересно наблюдать за тем, как развиваются различные инструменты и инфраструктуры, как они приобретают новые возможности. Кажется, что каждый следующий релиз данного продукта становится лучше и лучше, предлагая разработчикам поддержку все большего числа языков программирования и позволяя им создавать проекты для постоянно растущего числа областей разработки, таких как web-приложения, клиентские приложения, приложения для мобильных платформ и программы, использующие параллельные вычисления, консоли и другие устройства.
(далее…)