Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Основные элементы




Name Свойство Установка текстового имени потока

GetData, SetData Статические Возвращает (устанавливает) значение для указанного методы слота в текущем потоке

GetDomain, Статические Возвращает ссылку на домен приложения (идентификатор

GetDomainID методы домена приложения), в рамках которого работает поток

GetHashCode Метод Возвращает хеш-код для потока

Sleep Статический метод Приостанавливает выполнение текущего потока на заданное количество миллисекунд

Interrupt Метод Прерывает работу текущего потока

Resume Метод Возобновляет работу после приостановки потока

Start Метод Начинает выполнение потока, определенного делегатом

ThreadStart Suspend Метод Приостанавливает выполнение потока. Если выполнение потока уже приостановлено, то игнорируется

Для того чтобы блок кода мог использоваться в каждый момент только одним потоком, применяется оператор lock. Формат оператора:

lock (выражение) блок_операторов

Выражение определяет объект, который требуется заблокировать. Для обычных методов в качестве выражения используется ключевое слово this, для статических — typeof (класс). Блок операторов задает критическую секцию кода, которую требуется заблокировать.

 

10) Асинхронные делегаты.

Делегат можно вызвать на выполнение либо синхронно, либо асинхронно с помощью методов Beginlnvoke и Endlnvoke. При вызове делегата с помощью метода Beginlnvoke среда выполнения создает для исполнения метода отдельный поток и возвращает управление оператору, следующему за вызовом. При этом в исходном потоке можно продолжать вычисления.

Если при вызове Beginlnvoke был указан метод обратного вызова, этот метод вызывается после завершения потока. Метод обратного вызова также задается с помощью делегата, при этом используется стандартный делегат AsyncCallback. В методе, обратного вызова для получения возвращаемого значения и выходных параметров применяется метод Endlnvoke.

Если метод обратного вызова не был указан в параметрах метода Beginlnvoke, метод EndInvoke можно использовать в потоке, инициировавшем запрос.

 

11) Общая характеристика процессов ввода-вывода.

Ввод-вывод в С# выполняется с помощью подсистемы ввода-вывода и классов библиотеки.NET. Обмен данными реализуется с помощью потоков. Поток (stream) — это абстрактное понятие, относящееся к любому переносу данных от источника к приемнику. Потоки обеспечивают надежную работу как со стандартными, так и с определенными пользователем типами данных, а также единообразный и понятный синтаксис. Поток определяется как последовательность байтов и не зависит от конкретного устройства, с которым производится обмен

Обмен с потоком для повышения скорости передачи данных производится, через специальную область оперативной памяти — буфер. Буфер выделяется для каждого открытого файла. При записи в файл вся информация сначала направляется в буфер и там накапливается до тех пор, пока весь буфер не заполнится. После этого или после специальной команды сброса происходит передача данных на внешнее устройство. При чтении из файла данные вначале считываются в буфер, причем не столько, сколько запрашивается, а сколько помещается в буфер.

Механизм буферизации позволяет более быстро и эффективно обмениваться информацией с внешними устройствами.

Для поддержки потоков библиотека.NET содержит иерархию классов. Эти классы определены в пространстве имен System.IO

Основные классы пространства имен System.Ю

BinaryReader, BinaryWriter Чтение и запись значений простых встроенных типов (целочисленных, логических, строковых и т. п.) во внутренней форме представления.

BufferedStream Временное хранение потока байтов (например, для последующего переноса в постоянное хранилище)

Directory, Directorylnfo, File, Filelnfo Работа с каталогами или физическими файлами: создание, удаление, получение свойств. Возможности классов Fillе и Directory реализованы в основном в виде статических методов. Аналогичные классы Directorylnfo и Filelnfo используют обычные методы

FileStream Произвольный (прямой) доступ к файлу, представленному как поток байтов

MemoryStream Произвольный доступ к потоку байтов в оперативной памяти

StreamWriter, StreamReader Чтение из файла и запись в файл текстовой информации

StringWriter, StringReader Работа с текстовой информацией в оперативной памяти

Выполнять обмен с внешними устройствами можно на уровне:

• двоичного представления данных (BinaryReader, BinaryWriter);

• байтов (FileStream);

• текста, то есть символов (StreamWriter, StreamReader).

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

Использование классов файловых потоков в программе предполагает следующие операции:

1. Создание потока и связывание его с физическим файлом.

2. Обмен (ввод-вывод).

3. Закрытие файла.




Поделиться с друзьями:


Дата добавления: 2017-01-13; Просмотров: 247; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.