Net framework 5, а также среды Visual Studio 2012 и C#



Download 6,27 Mb.
Pdf ko'rish
bet522/658
Sana12.06.2023
Hajmi6,27 Mb.
#950840
1   ...   518   519   520   521   522   523   524   525   ...   658
Bog'liq
CLR via C Programmirovanie na platforme Microsoft NET Framework 4 5 na yazyke C


Глава.25 .Взаимодействие.с.компонентами.WinRT
данных, для компонентов WinRT, инкапсулирующих потоки вывода. Например, при 
использовании объекта 
DataWriter
всегда следует вызывать его метод 
StoreAsync
.
Массивы.
В WinRT API поддерживаются одномерные массивы с индексиро-
ванием от нуля. WinRT может передавать элементы массива либо в метод, либо из 
него — но никогда в обоих направлениях. Соответственно вы не сможете передать 
массив функции WinRT API, изменить элементы массива, а затем обратиться 
к измененным элементам после возвращения из функции API
1
. Впрочем, я описал 
контракт, который 
должен
соблюдаться. Тем не менее среда не занимается актив-
ным контролем его соблюдения, поэтому некоторые проекции могут передавать 
содержимое массива в обоих направлениях. Обычно это делается для естественного 
повышения производительности.
Коллекции.
При передаче коллекции WinRT API среда CLR упаковывает объ-
ект коллекции в обертку CCW и передает ссылку на CCW функции WinRT API. 
При вызовах через CCW вызывающий поток пересекает границу взаимодействия, 
что приводит к снижению производительности. С другой стороны, в отличие от 
массивов, при передаче коллекций WinRT API возможно выполнение операций 
с коллекциями «на месте» без копирования элементов. В табл. 25.1 перечислены 
интерфейсы коллекций WinRT и их проекции в коде приложений .NET.
таблица 25.1.
.Интерфейсы.коллекций.WinRT.и.их.проекции.в.CLR
тип коллекции WinRT (пространство 
имен (Windows.Foundation.
Collections)
Проецируемый тип коллекции CLR 
(пространство имен System.Collections.
Generic)
IIterable
IEnumerable
IVector
IList
IVectorView
IReadOnlyList
IMap
IDictionary
IMapView
IReadOnlyDictionary
IKeyValuePair
KeyValuePair
Как показывает приведенный список, команда CLR основательно потрудилась 
над тем, чтобы по возможности упростить взаимодействие между системой типов 

Например, из этого следует, что API не может содержать такие методы, как Sort класса 
System.Array. Интересно, что все языки (C, C++, C#, Visual Basic и JavaScript) поддерживают 
передачу элементов массива в обоих направлениях, а система типов WinRT такой возмож-
ности не дает.


705
Проекции.уровня. NET.Framework
WinRT и системой типов CLR, а разработчики управляемого кода могли бы ис-
пользовать компоненты WinRT в своем коде
1
.

Download 6,27 Mb.

Do'stlaringiz bilan baham:
1   ...   518   519   520   521   522   523   524   525   ...   658




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish