Асинхронный вызов методов

Асинхронный вызов методов

Чтобы дать указание делегату BinaryOp вызвать метод Add() асинхронно, измените предыдущий метод Main() так, как показано ниже.

static void Main(string[] args) {

 Console.WriteLine("***** асинхронный вызов делегата *****");

 // Вывод ID выполняемого потока.

 Console.WriteLine("Вызван Main() в потоке {0}.", Thread.CurrentThread.GetHashCode());

 // Вызов Add() во вторичном потоке.

 BinaryOp b = new BinaryOp(Add);

 IAsyncResult iftAR = b.BeginInvoke(10, 10, null, null);

 // Выполнение другой работы в первичном потоке.…

 Console.WriteLine("В Main() еще есть работа!");

 // Получение результата метода Add(),

 // когда это требуется.

 int answer = b.EndInvoke(iftAR);

 Console.WriteLine ("10 + 10 равно {0}.", answer);

 Console.ReadLine();

}

Выполнив это приложение, вы увидите, что теперь выводятся два разных хешированных значения, поскольку в границах текущего домена приложения выполняются два потока (см. рис. 14.2).

Рис. 14.2. Методы, вызываемые асинхронно, выполняют свою работу в отдельном потоке

Вдобавок к уникальным хешированным значениям, вы также обнаружите, что при запуске приложения сообщение "В Main() еще есть работа!" появляется практически немедленно.

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

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

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

Модификаторы параметров методов

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

Модификаторы параметров методов Методы (и статические, и уровня экземпляра) могут использовать параметры, передаваемые вызывающей стороной. Однако, в отличие от некоторых других языков программировании, в C# предлагается множество модификаторов параметров, которые


Перегрузка методов

Из книги Руководство администратора баз данных Informix. автора Кустов Виктор

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


Отображение методов

Из книги Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT автора Фролов Александр Вячеславович

Отображение методов Мы модифицируем класс Program, чтобы определить ряд статических методов, каждый из которых будет иметь один параметр System.Type и возвращать void. Начнем с метода ListMethods(), который (как вы можете догадаться сами) печатает имена всех методов, определенных


Вызов методов с параметрами

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

Вызов методов с параметрами Чтобы показать пример динамического вызова метода, имеющего параметры, предположим, что тип MiniVan определяет метод, который называется TellChildToBeQuiet().// Усмирение вопящих…public void TellChildToBeQuiet(string kidName, int shameIntensity) { for (int i = 0; i ‹ shameIntensity;


2.2.3.2 Асинхронный ввод-вывод

Из книги О чём не пишут в книгах по Delphi автора Григорьев А. Б.

2.2.3.2 Асинхронный ввод-вывод Для ускорения операций ввода-вывода сервер использует собственный пакет асинхронного ввода-вывода (AIO) или пакет асинхронного ввода-вывода ядра ОС (KAIO), если он доступен. Пользовательские запросы на ввод-вывод обрабатываются асинхронно,


Редактирование методов класса

Из книги VBA для чайников автора Каммингс Стив

Редактирование методов класса Выберите из списка элементов класса интересующий вас метод и нажмите правую кнопку мыши. На экране появится временное меню, показанное нами на рисунке 2.18. Это меню позволяет перейти к редактированию объявления или определения метода,


7.2. Классификация IPC-методов в Unix

Из книги Социальные сети [Источники новых клиентов для бизнеса] автора Парабеллум Андрей Алексеевич

7.2. Классификация IPC-методов в Unix Как и в однопроцессных структурах программ, простейшая организация является наилучшей. В оставшейся части данной главы представлены IPC-методики приблизительно в порядке возрастания сложности их программирования. Прежде чем использовать


ГЛАВА 14 Асинхронный ввод/вывод и порты завершения

Из книги Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase/FireBird/Yaffil автора Ковязин Алексей Николаевич

ГЛАВА 14 Асинхронный ввод/вывод и порты завершения Операциям ввода и вывода присуща более медленная скорость выполнения по сравнению с другими видами обработки. Причиной такого замедления являются следующие факторы:• Задержки, обусловленные затратами времени на поиск


Асинхронный ввод/вывод сиспользованием нескольких потоков

Из книги Описание языка PascalABC.NET автора Коллектив РуБоард

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


2.2.5. Асинхронный режим, основанный на сообщениях

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

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


2.2.7. Асинхронный режим, основанный на событиях

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

2.2.7. Асинхронный режим, основанный на событиях Асинхронный режим, основанный на событиях, появился во второй версии Windows Sockets. В его основе лежат события — специальные объекты, служащие для синхронизации работы нитей.Существуют события, поддерживаемые на уровне системы.


Создание методов

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

Создание методов Методы представляют собой обычные процедуры типов Sub и Function, которым выпало разместиться в модуле класса. Конечно, в большинстве случаев метод должен делать нечто, напрямую связанное с самим объектом, преобразуя данные, хранимые объектом. Но, при желании,


Выбор методов лидгена

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

Выбор методов лидгена Мы поговорили о пассивных методах лидгена и методах лидгена в целом. Итак, активные методы – это в основном реклама плюс активный выход в социальные сети. Добавим в эту категорию также и экспертные комментарии в сообществах (см выше).Если у вас пока


Асинхронный сервер и отмена выполняющихся запросов

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

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