Интерфейс System.IAsyncResult

Интерфейс System.IAsyncResult

Метод BeginInvoke() всегда возвращает объект, реализующий интерфейс IAsyncResult, а метод EndInvoke() имеет единственный параметр типа IAsyncResult. Совместимый с IAsyncResult объект, возвращаемый методом BeginInvoke(), и является тем связующим механизмом, который позволяет вызывающему потоку получить результат асинхронного вызова метода позже с помощью EndInvoke(). Интерфейс IAsyncResult (определенный в пространстве имен System) задается так, как показано ниже.

public interface IAsyncResult {

 object AsyncState { get; }

 WaitHandle AsyncWaitHandle { get; }

 bool CompletedSynchronously { get; }

 bool IsCompleted { get; }

}

В самом простом случае можно избежать непосредственного вызова этих членов. Требуется только сохранить совместимый с IAsyncResult объект, возвращенный BeginInvoke(), и передать его методу EndInvoke(), когда вы будете готовы получить результат вызова метода. Позже вы увидите, что у вас есть возможность вызывать члены совместимого с IAsyncResult объекта, если вы хотите "участвовать" в процессе извлечения возвращаемого значений метода.

Замечание. Если асинхронно вызывается метод, который не предлагает возвращаемых значений, можно его вызвать и престо "забыть" о нем. В таких случаях нет необходимости сохранять совместимый с IAsyncResult объект и вызывать EndInvoke() (так как нет возвращаемого значения, которое требуется извлечь).

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

WindowsFile System

Из книги Справочник по реестру Windows XP автора Коллектив РуБоард

WindowsFile System HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlFileSystemNtfsDisableLastAccessUpdateОбновления меток последнего доступа ко всем файлам каталога при его открытии на диске NTFS.Тип: REGDWORD;Значение: (0 = устанавливать метку; 1 = не устанавливать метку)HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionEFSEfsConfigurationСистема


system

Из книги Программы и файлы Windows автора Климов А

system Местонахождение: WINDOWSsystem32config Файл system (обратите внимание, что файл без расширения) содержит раздел реестра


System Сор

Из книги 200 лучших программ для Интернета. Популярный самоучитель автора Краинский И

System Сор Производитель: Mahaon soft (http://mahaonsoft.com).Статус: коммерческая.Страница для скачивания: http://mahaonsoft.com/downloads.html.Размер: 800 Кбайт.На первый взгляд, эта программа напоминает MagicTweak (см. выше) (рис. 5.35). Действительно, некоторое сходство в интерфейсе есть. В левой части окна


System Mechanic

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

System Mechanic Производитель: iolo technologies (http://www.iolo.com).Статус: коммерческая.Страница для скачивания: http://www.iolo.com/download.cfm.Размер: 7,8 Мбайт.После запуска System Mechanic вы увидите окно, которое можно условно разделить на три части (рис. 5.36). В левой находятся пункты меню, каждое из которых


System.DateTime и System.TimeSpan

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

System.DateTime и System.TimeSpan В завершение нашего обзора базовых типов данных позволите обратить ваше внимание на то, что пространство имен System определяет несколько полезных типов данных, для которых в C# не предусмотрено ключевых слов. Это, в частности, типы DateTime и TimeSpan (задачу


Тип System.GC

Из книги Основы AS/400 автора Солтис Фрэнк

Тип System.GC Библиотеки базовых классов предлагают тип класса System.GC, который позволяет программно взаимодействовать со сборщиком мусора, используя множество статических членов указанного класса. Следует заметить, что непосредственно использовать этот тип в программном


Базовые классы System.MulticastDelegate и System.Delegate

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

Базовые классы System.MulticastDelegate и System.Delegate Таким образом, при создании типов c помощью) ключевого слова delegate в C# вы неявно объявляете тип класса, являющегося производным от System.MulticastDelegate. Этот класс обеспечивает своим потомкам доступ к списку с адресами тех методов, которые


Тип System.Web.UI.Page

Из книги UNIX: взаимодействие процессов автора Стивенс Уильям Ричард

Тип System.Web.UI.Page Первым интересующим нас родительским классом является сам класс Page. Ниже описаны его многочисленные свойства, обеспечивающие возможность взаимодействия с различными Web-примитивами, такими как переменные приложения и сеанса, запросы и ответы HTTP, темы и т.д.


Тип System.Web.UI.Control

Из книги QNX/UNIX [Анатомия параллелизма] автора Цилюрик Олег Иванович

Тип System.Web.UI.Control Базовый класс System.Web.UI.Control определяет различные свойства, методы, и события, которые позволяют взаимодействовать с базовыми членами Web-элемента управления (обычно не относящимися к графическому интерфейсу). В табл. 23.9 предлагаются описания некоторых таких


7.3.1.1. System V IPC

Из книги UNIX — универсальная среда программирования автора Пайк Роб

7.3.1.1. System V IPC Средства System V IPC — средства передачи сообщений, основанные на имеющихся в System V возможностях общей памяти, которые были описаны ранее.Программы, взаимодействующие с помощью System V IPC, обычно определяют общие протоколы, основанные на обмене короткими (до 8 Кб)


Ранняя AS/400 (она же System/38)

Из книги автора

Ранняя AS/400 (она же System/38) В конце 1985 небольшая группа разработчиков из Рочестера продемонстрировала, что на System/38 можно создать среду для программного обеспечения System/36. Стоимость оборудования снизилась настолько, что мы теперь могли создавать малые модели System/38. Это


Индивидуальность System/36

Из книги автора

Индивидуальность System/36 В Рочестере была и группа разработчиков, продолжавших оставаться приверженцами System/36. В 1993 году в разгар работ над SLIC у двоих руководителей группы System/36, Дика Мастейна и Стива Дала (Steve Dahl), возникла идея. Почему бы не создать новую System/36? Такая


7.3.1.1. System V IPC

Из книги автора

7.3.1.1. System V IPC Средства System V IPC — средства передачи сообщений, основанные на имеющихся в System V возможностях общей памяти, которые были описаны ранее.Программы, взаимодействующие с помощью System V IPC, обычно определяют общие протоколы, основанные на обмене короткими (до 8 Кб)


Семафоры System V

Из книги автора

Семафоры System V Функция main программы, измеряющей быстродействие семафоров System V, приведена в листинге А.27, а функция incr показана в листинге А.28.Листинг А.27. Функция main для измерения быстродействия семафоров System V//bench/incr_svsem1.c1  #include "unpipc.h"2  #define MAXNTHREADS 1003  int nloop;4  struct {5   int


System V API

Из книги автора

System V API Этот набор API является базовым для второй ветви[6] UNIX — System V (AT&T Unix System V). Как и оба предыдущих, этот набор API самодостаточен для реализации практически всех возможностей ОС, но использует для этого совершенно другие модели, например сетевую абстракцию TLI вместо