Читаем C# 4.0 полное руководство - 2011 полностью

public TResult Result { get; internal set; }

Аксессорsetявляется внутренним для данного свойства, и поэтому оно оказывается доступным во внешнем коде, по существу, только для чтения. Следовательно, задача получения результата блокирует вызывающий код до тех пор, пока результат не будет вычислен.

В приведенном ниже примере программы демонстрируется возврат задачей значений. В этой программе создаются два метода. Первый из них,MyTask , не принимает параметров, а просто возвращает логическое значениеtrueтипаbool.Второй метод,Sumlt , принимает единственный параметр, который приводится к типуint,и возвращает сумму из значения, передаваемого в качестве этого параметра.

// Возвратить значение из задачи.

using System;

using System.Threading;

using System.Threading.Tasks;

class DemoTask {

// Простейший метод, возвращающий результат и не принимающий аргументов, static bool MyTask    {

return true;

}

// Этот метод возвращает сумму из положительного целого значения,

// которое ему передается в качестве единственного параметра static int Sumlt(object v) { int x = (int) v; int sum = 0;

\

for(; х > 0; х—) sum += х;

return sum;

}

static void Main {

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

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

Task tsk = Task.Factory.StartNew(MyTask);

Console.WriteLine("Результат после выполнения задачи MyTask: " + tsk.Result);

// Сконструировать объект второй задачи.

Task tsk2 = Task.Factory.StartNew(Sumlt, 3);

Console.WriteLine("Результат после выполнения задачи Sumlt: " + tsk2.Result);

tsk.Dispose; tsk2.Dispose;

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

}

}

Выполнение этой программы приводит к следующему результату.

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

Результат после выполнения задачи MyTask: True Результат после выполнения Sumlt: 6 Основной поток завершен.

Помимо упомянутых выше форм классаTaskи методаStartNew,имеются также другие формы. Они позволяют указывать другие дополнительные параметры.

Отмена задачи и обработка исключения AggregateException

В версии 4.0 среды .NET Framework внедрена новая подсистема, обеспечивающая структурированный, хотя и очень удобный способ отмены задачи. Эта новая подсистема основывается на понятиипризнака отмены.Признаки отмены поддерживаются в классеTask,среди прочего, с помощью фабричного методаStartNew .

ПРИМЕЧАНИЕ

Новую подсистему отмены можно применять и для отмены потоков, рассматривавшихся в предыдущей главе, но она полностью интегрирована в TPL и PLINQ. Именно поэтому эта подсистема рассматривается в этой главе.

Перейти на страницу:

Похожие книги

Access 2002: Самоучитель
Access 2002: Самоучитель

В книге рассматривается широкий круг вопросов, связанных с использованием программной среды Access 2002, которая является составной частью пакета Office 2002 и предназначена для создания банка данных в самых различных предметных областях.Подробно описывается методика проектирования объектов базы данных (таблицы, формы, отчеты, страницы доступа к данным, запросы, модули).Детально обсуждаются вопросы создания интегрированной базы данных в единой среде Access 2002: формирование БД с нуля, конвертирование в программную среду баз данных, созданных в ином программном окружении – Clarion, FoxPro.Особое внимание уделяется формированию разнообразных запросов к интегрированной базе данных Access 2002 с использованием языков программирования SQL, VBA и макросов.Приводятся общие сведения о возможностях языка обмена данными между различными компьютерами и приложениями (XML). Описываются возможности использования гиперссылок, связывающих базу данных с другими программными продуктами. Объясняется, как можно работать с базой данных Access 2002 без установки ее на компьютер, используя технологию ODBC (Open Data Base Connectivity). В приложениях приводятся количественные параметры Access 2002 и связанная с этой СУБД терминология.Предлагаемая книга будет полезна специалистам, занимающимся практической разработкой банков данных и приложений на их основе, а также студентам вузов, изучающим информатику.

Павел Юрьевич Дубнов

Программирование, программы, базы данных / ОС и Сети / Книги по IT