Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 273

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 267 268 269 270 271 272 < 273 > 274 275 276 277 278 279 .. 404 >> Следующая


В методе HandieReado не происходит ничего такого, чего бы нам не встречалось ранее. Он просто перекодирует данные и выводит символьный массив на консоль. В нем также выводится значение свойства Asyncstate объекта IAsyncResult.

private void HandleRead(IAsyncResult ar)

<

Decoder d = Encoding.UTF0 .GetDecoderO ;

d.GetChars(byData, 0, byData.Length, charData, 0);

Console.WriteLine('Value of state object for this operation: {0>" , ar.AsyncStatc);

Console.WriteLine(charData);

)

Наиболее интересен тот факт, что данный метод не вызывается приложением. Он вызывается системой .NET Framework в тот момент, когда завершается процедура считывания файла. Это позволяет приложению продолжать обработку какой-либо иной информации, пока выполняется относительно медленная процедура считывания файла.

Асинхронная запись файлов

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

Итоги

Из настоящей главы мы узнали, что такое потоки и почему они используются в .NET Framework для осуществления доступа к файлам и другим последовательным устройствам. Мы рассмотрели основные классы, находящиеся в пространстве имен System, ю: File, Fiieinfo И Filestream, а также обсудили вопрос, ДЛЯ чего ОНИ могут использоваться. Мы также изучили классы StreamReader И Streamwriter
586

Глава 20

и то, насколько они оказываются полезными прн осуществлении записи в поток и чтении нз потока. Мы узнали, каким образом может осуществляться чтение и запись в файлы произвольного доступа посредством класса Fiiestreem. Наконец, мы рассмотрели более сложные решения, которые можно строить с использованием .NET Framework. Мы построили приложение, которое позволяет вести наблюдение за файлами и директориями С ПОМОЩЬЮ класса FileSystemWatcher.

В результате нами было рассмотрено:

? Открытие файлов

? Чтение из файлов

? Запись в файлы

? Различия между классами Streamwriter И StreamReader, с одной стороны, и классом Filestream, с другой.

? Преимущества н недостатки асинхронного доступа к файлам

? Наблюдение за файловой системой

С использованием класса FileSystemWatcher

Упражнения

1. Как называется пространство имен, которое должно импортироваться для того, чтобы приложение могло работать с файлами?

2. В каких случаях для записи в файл следует использовать объект Filestream вместо объекта streamwriter?

3. Какие методы класса streamwriter позволяют производить считывание данных нз файлов, и что конкретно делает каждый из них?

4. Какие события может генерировать класс FileSystemWatcher, и для чего они предназначены?

5. Модифицируйте приложение ReWatch, созданное нами

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

6. Создайте приложение, которое производит запись данных в файл в асинхронном режиме. Создайте произвольным образом большой массив данных н запишите его в файл.
21

Модули .NET

Модулем в .NET называется выполняемая программа (или ее некоторая часть), поставляемая в виде отдельного блока. Модули — это средства для создания пакетов программ на C# для выполнения и распространения. Когда вы строите программу на С#, то получаемый в результате файл с расширением .ехе представляет собой не что иное как модуль. Если вы строите библиотеку классов, то получаемый в результате файл DLL (Dynamic Link Library — динамически загружаемая библиотека) также представляет собой модуль.

Весь код, находящийся в некотором модуле, строится, распространяется и получает номер версии как единое целое. Модуль экспортирует общие классы, свойства и методы, доступные для Других программ. Все объекты, описанные как частные, остаются внутренними для модуля. Для получения более подробной информации следует продолжить чтение книги. Для получения дополнительной информации вам можно осуществить поиск по доступной в режиме онлайн документации .NET Framework для термина "Assembly" (модуль).

Хотя все программы на C# упаковываются в виде модулей, многие возможности модулей разработаны таким образом, чтобы упростить распространение программ в виде специального класса, который называется компонентом. Понимание компонентов оказывается существенным для понимания тех преимуществ, которое дает использование модулей.

Компоненты

Компонентом называется некоторая подпрограмма или часть программы, которая предназначается для использования другой программой. Кроме того, компонент представляет собой блок в двоичном виде (т. е. выполняемый код, а не исходный текст), который может использоваться другими программами без необходимости повторной компиляции как самого компонента, так и программы, использующей этот компонент. Это означает, что от сторонних производителей не требуется предоставлять исходный код для своих компонентов.
Предыдущая << 1 .. 267 268 269 270 271 272 < 273 > 274 275 276 277 278 279 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.