Герберт Шилдт - C# 4.0 - полное руководство

Здесь есть возможность читать онлайн «Герберт Шилдт - C# 4.0 - полное руководство» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Москва -- Киев, Год выпуска: 2011, ISBN: 2011, Издательство: ООО И.Д. Вильямс, Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

C# 4.0: полное руководство: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «C# 4.0: полное руководство»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки.
Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

C# 4.0: полное руководство — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «C# 4.0: полное руководство», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

// Простой пример отмены задачи с использованием опроса.

using System;

using System.Threading;

using System.Threading.Tasks;

class DemoCancelTask {

// Метод, исполняемый как задача,

static void MyTask(Object ct) {

CancellationToken cancelTok = (CancellationToken) ct;

// Проверить, отменена ли задача,

// прежде чем запускать ее.

cancelTok.ThrowIfCancellationRequested();

Console.WriteLine("MyTask() запущен");

for(int count = 0; count < 10; count++) {

// В данном примере для отслеживания отмены задачи применяется опрос,

if(cancelTok.IsCancellationRequested) {

Console.WriteLine("Получен запрос на отмену задачи.");

cancelTok.ThrowIfCancellationRequested();

}

Thread.Sleep(500);

Console.WriteLine("В методе MyTask() подсчет равен " + count );

}

Console.WriteLine("MyTask завершен");

}

static void Main() {

Console.WriteLine("Основной поток запущен.");

// Создать объект источника признаков отмены.

CancellationTokenSource cancelTokSrc = new CancellationTokenSource();

// Запустить задачу, передав признак отмены ей самой и делегату.

Task tsk = Task.Factory.StartNew(MyTask, cancelTokSrc.Token,

cancelTokSrc.Token);

// Дать задаче возможность исполняться вплоть до ее отмены.

Thread.Sleep(2000);

try {

// Отменить задачу.

cancelTokSrc.Cancel();

// Приостановить выполнение метода Main() до тех пор,

// пока не завершится задача tsk.

tsk.Wait();

} catch (AggregateException exc) {

if(tsk.IsCanceled)

Console.WriteLine("\nЗадача tsk отменена");

// Для просмотра исключения снять комментарии со следующей строки кода:

// Console.WriteLine(exc);

} finally {

tsk.Dispose();

cancelTokSrc.Dispose();

}

Console.WriteLine("Основной поток завершен.");

}

}

Ниже приведен результат выполнения этой программы. Обратите внимание на то что задача отменяется через 2 секунды.

Основной поток запущен.

MyTask() запущен

В методе MyTask() подсчет равен 0

В методе MyTask() подсчет равен 1

В методе MyTask() подсчет равен 2

В методе MyTask() подсчет равен 3

Получен запрос на отмену задачи.

Задача tsk отменена

Основной поток завершен.

Как следует из приведенного выше результата, выполнение метода MyTask()отменяется в методе Main()лишь две секунды спустя. Следовательно, в методе MyTask()выполняются четыре шага цикла. Когда же перехватывается исключение AggregateException, проверяется состояние задачи. Если задача tskотменена, что и должно произойти в данном примере, то об этом выводится соответствующее сообщение. Следует, однако, иметь в виду, что когда сообщение AggregateExceptionгенерируется в ответ на отмену задачи, то это еще не свидетельствует об ошибке, а просто означает, что задача была отменена.

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

Другие средства организации задач

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

В предыдущем разделе было дано краткое описание исключения AggregateException, но у него имеются также другие особенности, которые могут оказаться весьма полезными. К их числу относится метод Flatten(), применяемый для преобразования любых внутренних исключений типа AggregateExceptionв единственное исключение AggregateException. Другой метод, Handle(), служит для обработки исключения, составляющего совокупное исключение AggregateException.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «C# 4.0: полное руководство»

Представляем Вашему вниманию похожие книги на «C# 4.0: полное руководство» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «C# 4.0: полное руководство»

Обсуждение, отзывы о книге «C# 4.0: полное руководство» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x