Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Троелсен Э. -> "С# и платформа .NET. Библиотека программиста" -> 125

С# и платформа .NET. Библиотека программиста - Троелсен Э.

Троелсен Э. С# и платформа .NET. Библиотека программиста — СПб.: Питер, 2004. — 796 c.
ISBN 5-318-00750-3
Скачать (прямая ссылка): cplatforma2004.pdf
Предыдущая << 1 .. 119 120 121 122 123 124 < 125 > 126 127 128 129 130 131 .. 320 >> Следующая

Управление загрузкой разных версий сборок
Явным образом управлять загрузкой требуемой версии сборки (например, чтобы за -версия с меньшим номером при помощи файла
298 6 * Сборки, потоки и домены приложений
іши приложения. Мы уже знакомы с ними — это файлы в формате XML, которые имеют то же самое имя, что и приложение (плюс расширение * .соnfig), и находятся в каталоге приложения. Ранее мы уже рассматривалиrerprivatePath, используемый для указания подкаталогов, в которых среда выполнения должна провести поиск сборок. Для того чтобы явно указать требуемую версию сборки, в файлах конфигурации используются тега '-dependent Assembly и <bindi ngRedi rect>. Например, такой код заставляет среду выполнения .NET принудительно загружать сборку версии 2.0.0.0:
<configuration> <runtime>
<assemblyBinding xmlns-"urn:Schemas-microsoft-com: asm.vl"> <dependentAssembl f>
<assemblyIdentity name="sharedassembly" publicKeyToken-"6c0646f072c6fe39" culture-""/>
<Ы ndi ngRedi rect ol dVersIon=" 1.0.0, D" newVers-lon="2.0.0.0"/>
</dependentAssembly> </assetnbTyBinding> </runtime> </configuration>
Тег ol dVersi or используется для указания версии сборки, вместо которой мы будем принудительно использовать сборку другой версии - указанной в теге newVersion.
Проверим это на примере. Вначале мы создадим файл конфигурации приложения точно так, как представлено в тексте, и сохраним его в каталоге приложения (убедимся, что мы правильно присвоили имя этому файлу). Затем запустим программу. Должно открыться окно сообщения, представленное на рис. 6.35.
Using version 2.0.D.O.!
Рис. 6.35. Принудительно используем сборку версии 2.0.0.0
Если же мы изменим в файле конфигурации приложения значение атрибута newVersion на 1.0.0.0, то откроется другое окно сообщения (рис. 6.36).
ШЗЗЕШШ.. *J
Using version 1.0.0.0!
Рис. 6.36. Теперь в файле конфигурации приложения указана версия 1.0.0.0
Таким образом, учитывая, что в глобальном кэше сборок могут храниться разные версии сборок, мы можем без проблем указывать нашему приложению ту версию сборки, которая должна быть загружена.
Работа с потоками в традиционных приложениях Win32 299
Администраторский файл конфигурации
У всех файлов конфигурации приложений, которые мы рассматривали в этой главе,
есть одна общая особенность - каждый из этих файлов относился только к одному приложению. Однако платформа .NET позволяет использовать файл конфигурации, единый для компьютера и всех установленных на нем приложений. Этот файл носит имя machine.config и называется администраторским файлом конфигурации (administrator configuration file). Применение этого файла может представлять большое удобство, поскольку нет необходимости отдельно указывать политики версий и другие особенности запуска наших приложений для каждого из них в отдельности — все это можно сделать централизованно. Советуем вам найти этот файл на своем компьютере и познакомиться с его содержимым — вы найдете в нем дополнительные теги, которые также можно использовать в приложениях.
Теперь, когда мы обладаем достаточными сведениями о содержимом сборок и приемах работы с ними, мы рассмотрим тему, тесно связанную с предыдущей, — как работать с потоками и многопоточными приложениями
Работа с потоками в традиционных приложениях Win32
В зависимости от вашего прежнего опыта вы можете быть в большей или меньшей степени знакомы с созданием многопоточных приложений в традиционной среде Win32 или совсем не знать, что такое потоки. Поэтому мы начнем эту главу с р;к смотрения основных принципов и с обзора того, как
точность реализовывалась в приложениях Win32, а затем уже перейдем к созданию многопоточных приложений NHT
Каждому традиционному приложению Win32 соответствует один (обычно) или несколько процессов (process). Процесс — это единица, которая характеризуется собственным набором внешних ресурсов (таких как СОМ-сервер) и выделенной приложению областью оперативной памяти. Для каждого файла ЕХЕ операционная система создает отдельную изолированную область в оперативной памяти, которой процесс пользуется в течение всего своего жизненного цикла.
Каждому процессу соответствует один (по крайней мере) или несколько потоков. Поток (thread) можно представить как специфический путь выполнения внутри процес -са Win32 (thread в буквальном переводе с английского означает «нить»). Первый пс -ток, создаваемый в процессе, называется первичным процессом (primary thread). В любом процессе существует по крайней мере один поток, который выполняет роль точки входа для приложения. В традиционных графических приложениях Windows такой точкой входа является метод W і пМз і п О, а в консольных приложениях — метод т. Ш).
Основная цель, для которой создаются многопоточные приложения (вместо использования единственного потока), — повышение производительности и -кия времени отклика приложения. К примеру, однопоточны;-приложения могут раздражать конечного пользователя тем, что они не будут реагировать на его действия в течение длительного времени при выполнении какой-либо сложной операции (например, при печати длинного файла, выполнения большого вычисления или подключения к удаленному серверу). С другой стороны, приложения ют своими преимуществами — например, если данные изменяет только один поток, то
Предыдущая << 1 .. 119 120 121 122 123 124 < 125 > 126 127 128 129 130 131 .. 320 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100