Посты для тега : ‘выполнения’

Некоторые типовые функции СКС

  Фактическое состояние кабельной системы отображается в виде совокупности отдельных записей БД. Наличие подобной информации открывает перспективы применения для поддержки текущего администрирования ряда чрезвычайно полезных функций и опций. Некоторые из них рассматриваются далее.

Читать далее »

Ограниченные области выполнения

Пример из предыдущего раздела демонстрирует некоторый уровень паранойи, который следует допускать для написания “пуленепробиваемого” нейтрального к исключениям кода. Чтобы предотвратить исключение, связанное с переполнением стека, перед вызовом ListSwap даже было выделено необходимое дополнительное пространство.

Читать далее »

Отличия между С# и С++

С# — строго типизированный объектно-ориентированный язык, чей код внешне похож на С++ (и Java). Это решение проектировщиков языка С# позволяет разработчикам на С++ легко воспользоваться своими знаниями для быстрого освоения С#. Синтаксис С# в некоторых отношениях отличается от С++, но большинство отличий между этими языками носят семантический и поведенческий характер, что обусловлено отличиями исполняющих сред, […]

Читать далее »

Механизм обработки исключений в C#

Где должны обрабатываться исключения? Ответ можно найти, применив вариант шаблона Expert (Эксперт), который устанавливает, что работа должна выполняться сущностью, являющейся экспертом в данной области. Это — окольный путь уведомить, что исключение должно перехватываться в точке, где его действительно можно обработать с уровнем знаний, достаточным для того, чтобы справиться с исключительной ситуацией наилучшим образом.

Читать далее »

Обобщенные методы

С# поддерживает обобщенные методы. Любое объявление метода внутри структуры, класса или интерфейса может быть сделано обобщенным. Сюда входят статические и виртуальные или абстрактные методы. К тому же в обобщенных или необобщенных типах можно объявлять обобщенные методы.

Читать далее »

Останавливающиеся и пробуждающиеся потоки

Как и для внутренних потоков операционной системы, существуют механизмы для погружения управляемых потоков в сон на определенный период времени или приостановки выполнения до тех пор, пока оно не будет явно возобновлено. Если поток просто желает приостановить себя на предопределенный период времени, он может вызвать статический метод Thread.Sleep и перейти в состояние WaitSleepJoin.

Читать далее »

Шаблон Strategy

Делегаты представляют собой удобный механизм для реализации шаблона Strategy (Стратегия). В основе своей шаблон Strategy позволяет динамически заменять вычислительные алгоритмы в зависимости от ситуации, сложившейся во время выполнения. Например, рассмотрим распространенный случай сортировки группы элементов. Предположим, что требуется максимально быстрое выполнение сортировки.

Читать далее »

Динамическое создание конструируемых типов

Учитывая динамическую природу CLR и тот факт, что на самом деле классы и код генерируются во время выполнения, вполне естественно предположить возможность конструирования закрытых типов из обобщений во время выполнения. До настоящего момента все примеры имели дело с созданием типов во время компиляции.

Читать далее »

Метаданные в C#

Давайте внимательнее рассмотрим пример “Hello World!” и сравним его с тем, что вы могли бы делать, если пришли из мира С++. Для начала обратите внимание, что здесь нет никаких включений заголовков. Причина в том, что С# в этом не нуждается. Взамен используется нечто более надежное и информативное, а именно — метаданные. За счет применения метаданных […]

Читать далее »

Многопоточность в С#

Простое упоминание о многопоточности иногда вселяет страх в сердца некоторых программистов. Для остальных — это хороший вызов. Независимо от того, как вы реагируете на нее, знайте, что многопоточность — это область, усеянная минными полями. Если вы не отнесетесь к этому с должным прилежанием, ошибка многопоточности неожиданно возникнет и натворит много бед, причем там, где вы […]

Читать далее »
 
Rambler's Top100