Программное создание вторичных потоков

Программное создание вторичных потоков

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

1. Для выбранного типа создайте метод, который будет использоваться в качестве точки входа нового потока.

2. Создайте делегат ParameterizedThreadStart (или уже устаревший ThreadStart), передав его конструктору адрес метода, определенного на шаге 1.

3. Создайте объект Thread, передав конструктору делегат ParameterizedThreadStart/ThreadStart в виде аргумента.

4. Задайте подходящие начальные характеристики потока (имя, приоритет и т.д.).

5. Вызовите метод Thread.Start(). Это указание как можно быстрее стартовать поток для метода, на который ссылается делегат, созданный на шаге 2.

Согласно шагу 2, имеется возможность использовать один из двух разных типов делегата для метода, предназначенного для выполнения во вторичном потоке. Делегат ThreadStart является частью пространства имен System.Threading со времен .NET версии 1.0 и может указывать на любой метод, не имеющий аргументов и не возвращающий ничего. Этот делегат удобно использовать тогда, когда метод должен выполняться в фоновом режиме без взаимодействия с ним.

Очевидным ограничением ThreadStart является отсутствие параметров. Поэтому в .NET 2.0 предлагается тип делегата ParameterizedThreadStart, допускающий передачу одного параметра типа System.Object. Поскольку с помощью System.Object можно представить всё, что угодно, вы можете передать этому делегату любое число параметров в виде пользовательского класса или структуры. Заметьте, однако, что делегат ParameterizedThreadStart может указывать только на методы, возвращающие void.

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

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

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

Программное обеспечение

Из книги 33 лучшие программы для ноутбука [Популярный самоучитель] автора Пташинский Владимир

Программное обеспечение На ноутбуке можно работать с теми же программами, что и на обычном компьютере. Однако, работая на настольном компьютере, мы не ограничены во времени (аккумулятор ведь не разряжается), к тому же можно почти не заботиться о заполнении винчестера


Генерирование вторичных исключений

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

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


Программное создание новых доменов приложения

Из книги Pinnacle Studio 11 автора Чиртик Александр Анатольевич

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


Программное обеспечение

Из книги Asterisk™: будущее телефонии Второе издание автора Меггелен Джим Ван

Программное обеспечение Для работы Pinnacle Studio 11 на компьютере должна быть установлена операционная система Windows XP или Windows Vista, DirectX версии не ниже девятой, а также корректные драйверы для видео– и звуковой карты и прочего оборудования. При недостаточно высокой


Программное обеспечение

Из книги Интернет. Новые возможности. Трюки и эффекты [litres] автора Баловсяк Надежда Васильевна

Программное обеспечение Основное внимание данная книга уделяет документированию Asterisk версии 1.4; однако многие соглашения и информация в данной книге являются универсальными и не относятся к какой-либо конкретной версии. Для выполнения и тестирования Asterisk мы


Программное обеспечение

Из книги Системное программирование в среде Windows автора Харт Джонсон М

Программное обеспечение Можно ли получить что-либо бесплатно в Сети? Можно! В первую очередь это относится к бесплатному (freeware) программному обеспечению. Тонны ПО на любой цвет и вкус, для любого рода деятельности – от сканеров безопасности и до графических редакторов.


Создание переносимых приложений с использованием потоков Pthreads

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

Создание переносимых приложений с использованием потоков Pthreads Потоки Pthreads уже неоднократно упоминались нами в качестве альтернативной модели многопоточного программирования и синхронизации, доступной в UNIX, Linux и других системах, не принадлежащих семейству Windows.


Стеки потоков и допустимые количества потоков

Из книги Интернет – легко и просто! автора Александров Егор

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


13.1. Создание потоков и манипулирование ими

Из книги Как раскрутить и разрекламировать Web-сайт в сети Интернет автора Загуменов Александр Петрович

13.1. Создание потоков и манипулирование ими К числу основных операций над потоками относятся создание потока, передача ему входной информации и получение результатов, останов потока и т.д. Можно получить список запущенных потоков, опросить состояние потока и выполнить


13.1.1. Создание потоков

Из книги Искусство программирования на языке сценариев командной оболочки автора Купер Мендель

13.1.1. Создание потоков Создать поток просто: достаточно вызвать метод new и присоединить блок, который будет исполняться в потоке.thread = Thread.new do # Предложения, исполняемые в потоке...endВозвращаемое значение — объект типа Thread. Главный поток программы может использовать его для


Программное обеспечение

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

Программное обеспечение Перед тем как с головой окунуться в Интернет, убедитесь, что на вашем компьютере установлено все необходимое программное обеспечение. Минимальный список программ приведен ниже. Расширять его, безусловно, можно, а сужать, пожалуй, не стоит. Рано


Программное обеспечение

Из книги QT 4: программирование GUI на С++ автора Бланшет Жасмин

Программное обеспечение http://www.cnidr.org/ir/ir.htmlInformation Retrieval at CNIDR – сервер индексирования и поиска документов.http://www.activestate.com/pldb/latest.htmPerl Active Debugger – отладчик для Perl.http://www.verity.com/prodNdemos.htmlVerity Products and Demos – серверы поиска и


26.2. Основные функции для работы с потоками: создание и завершение потоков

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

26.2. Основные функции для работы с потоками: создание и завершение потоков В этом разделе мы рассматриваем пять основных функций для работы с потоками, а в следующих двух разделах мы используем эти функции для написания потоковой модификации клиента и сервера


Создание потоков

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

Создание потоков Обеспечить многопоточную обработку в приложении Qt достаточно просто: мы только создаем подкласс QThread и переопределяем его функцию run(). Чтобы показать, как это работает, мы начнем с рассмотрения программного кода очень простого подкласса QThread, который


Применение классов Qt во вторичных потоках

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

Применение классов Qt во вторичных потоках Функция называется потокозащищенной (thread—safe), если она может спокойно вызываться одновременно из нескольких потоков. Если две такие функции вызываются из различных потоков и совместно используют одинаковые данные, результат