- •Атрибуты в среде .Net и языке c#.
- •Метаданные
- •Понятие атрибутов
- •Предопределенные и собственные атрибуты
- •Потребители атрибутов
- •Применение атрибутов
- •Сокращенное именование атрибутов
- •Создание собственных атрибутов:
- •Применение собственных атрибутов:
- •Ограничение использования атрибутов:
- •Атрибуты уровня сборки и модуля:
- •Рефлексия атрибутов:
- •Выводы:
- •Язык xml. Классы платформы .Net для работы с xml-данными.
- •Синтаксис xml
- •Работа с xml при помощи System.Xml
- •Работа с xml при помощи linq to xml
- •Выводы:
- •Потоковый ввод-вывод. Файлы. Работа с файлами и каталогами. Пространство имен System.Io
- •Классы Directory (DirectoryInfo) и File (FileInfo) Некоторые общие свойства классов DirectoryInfo и FileInfo:
- •Дополнительные возможности класса DirectoryInfo
- •Дополнительные возможности класса FileInfo
- •Дополнительные члены File
- •Потоковый ввод-вывод
- •Работа с классом FileStream
- •Работа с классами StreamWriter и StreamReader
- •Классы StringWriter и StringReader
- •Работа с классами BinaryWriter и BinaryReader
- •Выводы:
- •Сериализация. Атрибуты. Стандартные форматы сериализации. Понятие сериализации объектов
- •Роль графов объектов
- •Конфигурирование объектов для сериализации
- •Общедоступные поля, приватные поля и общедоступные свойства
- •Стандартные форматеры сериализации
- •Настройка сериализации с использованием атрибутов
- •Выводы:
- •Понятие бд и субд. Язык sql. Ado.Net как средство доступа из c# к субд. Понятие бд
- •Понятие субд
- •Обзор синтаксиса
- •Подключенный уровень
- •Автономный уровень
- •Основные свойства класса DataSet
- •Основные методы класса DataSet
- •Типы DataColumn и DataRow
- •Основные члены типа DataColumn:
- •Основные члены типа DataRow:
- •Работа с адаптерами данных:
- •Основные члены класса DbDataAdapter:
- •Параллельные вычисления. Многозадачность и многопоточность.
- •Некоторые члены класс Process:
- •Некоторые члены класса ProcessThread
- •Домены приложений
- •Некоторые члены класс AppDomain:
- •Многопоточность. Классификация состояний потока. Средства многопоточного программирования System.Threading.
- •Некоторые члены пространства имен System.Threading
- •Основные члены класс Thread
- •Состояния потока
- •Многопоточное программирование при помощи асинхронных вызовов делегатов
- •Создание вторичных потоков при помощи Thread.Start()
- •Синхронизация с помощью lock
- •Синхронизация с использованием типа System.Threading.Monitor
- •Синхронизация с использованием типа System.Threading.Interlocked
- •Синхронизация с использованием атрибута [Synchronization]
- •Использование System.Threading.Timer
- •Пул потоков clr
- •Библиотека Windows.Forms. Пространства имен. Структура приложения. Элементы управления. События. Иерархия элементов управления.
- •Основные пространства имен Windows Forms
- •Структура приложения WinForms
- •Элементы управления
- •События
- •Библиотека wpf. Отличия wpf от WindowsForms. Разметка xaml. Понятие Windows Presentation Foundation
- •Типы приложений wpf
- •Основные сборки wpf
- •Построение приложения wpf без xaml
- •Построение приложения wpf с использованием только xaml
- •Пример c# обработчика события для контрола, объявленного в xaml (связь кода и xaml):
- •Создание проекта
- •Знакомство с инструментами визуального конструктора wpf
Некоторые члены класса ProcessThread
CurrentPriority |
Текущий приоритет потока |
Id |
Уникальный идентификатор потока |
IdealProcessor |
Предпочитаемый процессор для выполнения потока |
PriorityLevel |
Уровень приоритета потока |
ProcessorAffinity |
Процессоры, на которых может выполняться поток |
StartTime |
Время запуска потока |
ThreadState |
Текущее состояние данного потока |
TotalProcessorTime |
Время процессора, использованное потоком |
WaitReason |
Причина, по которой поток находится в состоянии ожидания |
Домены приложений
В .NET исполняемые файлы не обслуживаются прямо внутри процесса Windows, как это происходит в случае традиционных неуправляемых приложений. Вместо этого они обслуживаются в отдельном логическом разделе внутри процесса, который называется доменом приложения (Application Domain — AppDomain). В единственном процессе может содержаться несколько доменов приложений, каждый из которых обслуживает свой исполняемый файл .NET. Такое дополнительное подразделение традиционного процесса Windows предоставляет ряд преимуществ, главные из которых описаны ниже.
Домены приложений унифицируют работу с программами в разных ОС
Домены приложений менее дорогостоящи в плане потребления вычислительных ресурсов и памяти по сравнению с полноценными процессами. Благодаря этому CLR-среде удается загружать и выгружать домены приложений намного быстрее, чем формальные процессы, и тем самым значительно улучшать масштабируемость серверных приложений.
Домены приложений обеспечивают более глубокий уровень изоляции для обслуживания загружаемого приложения. В случае выхода из строя какого-то одного домена приложения внутри процесса, остальные домены приложений все равно остаются работоспособными.
Для работы с доменами приложений используется класс System.AppDomain.
Некоторые члены класс AppDomain:
CreateDomain() |
Создать новый домен в текущем процессе |
Createlnstance() |
Создать экземпляр типа из внешней сборки, загрузив сборку в текущий домен приложения |
GetAssemblies() |
Сборки .NET, загруженные в текущий домен приложения |
GetCurrentThreadld() |
Идентификатор активного потока в текущем домене приложения |
Load() |
Динамически загружает сборку в текущий домен приложения |
Unload() |
Выгружает определенный домен приложения из процесса |
BaseDirectory |
Каталог, относительно которого ведется поиск сборок |
CurrentDomain |
Домен приложения для текущего потока |
FriendlyName |
Имя текущего домена приложения |
Setuplnformation |
Параметры определенного домена приложения |
Многопоточность. Классификация состояний потока. Средства многопоточного программирования System.Threading.
Для многопоточного программирования среда .NET предоставляет пространство имен System.Threading
Некоторые члены пространства имен System.Threading
Thread |
Позволяет создавать потоки и управлять ими |
Timer |
Предоставляет механизм выполнения метода через заданные промежутки времени |
ThreadPool |
Позволяет использовать пул потоков |
Interlocked |
Предоставляет атомарные операции для переменных |
Monitor |
Реализует механизм блокировки потоков для синхронизации. Ключевое слово C# lock неявно использует Monitor |
Mutex |
Примитив синхронизации, который может быть использован между доменами приложений AppDomain |
ParameterizedThreadStart |
Позволяет потоку вызывать методы с произвольным числом аргументов |
Semaphore |
Позволяет ограничить количество получающих доступ к ресурсу потоков |
ThreadPriority |
Перечисление, содержащее уровни приоритета потока |
ThreadStart |
Позволяет указать метод для вызова в отдельном потоке |
ThreadState |
Перечисление, представляющее состояния потока |
TimerCallback |
Тип делегата для Timer |