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

Count = 0; thrdName = name;

}

// Точка входа в поток, public void Run()    {

Console.WriteLine(thrdName + " начат.");

do {

Thread.Sleep(500);

Console.WriteLine("В потоке " + thrdName + ", Count = " + Count);

Count++;

} while(Count < 10);

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

}

class MultiThread { static void Main() {

Console.WriteLine("Основной поток начат.");

// Сначала сконструировать объект типа MyThread.

MyThread mt = new MyThread("Потомок #1");

// Далее сконструировать поток из этого объекта.

Thread newThrd = new Thread(mt.Run);

// И наконец, начать выполнение потока. newThrd.Start(); do {

Console.Write(".");

Thread.Sleep(100);

} while (mt.Count != 10);

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

}

}

Рассмотрим приведенную выше программу более подробно. В самом ее начале определяется классMyThread,предназначенный для создания второго потока исполнения. В методе Run () этого класса организуется цикл для подсчета от 0 до 9. Обратите внимание на вызов статического методаSleep (), определенного в классеThread.Этот метод обусловливает приостановление того потока, из которого он был вызван, на определенный период времени, указываемый в миллисекундах. Когда приостанавливается один поток, может выполняться другой. В данной программе используется следующая форма методаSleep():

public static void Sleep(intмиллисекунд_простоя)

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

В методеMain() новый объект типаThreadсоздается с помощью приведенной ниже последовательности операторов.

// Сначала сконструировать объект типа MyThread.

MyThread mt = new MyThread("Потомок #1");

// Далее сконструировать поток из этого объекта.

Thread newThrd = new Thread(mt.Run);

// И наконец, начать выполнение потока. newThrd.Start();

Как следует из комментариев к приведенному выше фрагменту кода, сначала создается объект типаMyThread.Затем этот объект используется для создания объекта типаThread,для чего конструктору этого объекта в качестве точки входа передается методmt.Run (). И наконец, выполнение потока начинается с вызова методаStart ().

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

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

1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных
iOS. Приемы программирования
iOS. Приемы программирования

Книга, которую вы держите в руках, представляет собой новый, полностью переписанный сборник приемов программирования по работе с iOS. Он поможет вам справиться с наболевшими проблемами, с которыми приходится сталкиваться при разработке приложений для iPhone, iPad и iPod Touch. Вы быстро освоите всю информацию, необходимую для начала работы с iOS 7 SDK, в частности познакомитесь с решениями для добавления в ваши приложения реалистичной физики или движений — в этом вам помогут API UIKit Dynamics.Вы изучите новые многочисленные способы хранения и защиты данных, отправки и получения уведомлений, улучшения и анимации графики, управления файлами и каталогами, а также рассмотрите многие другие темы. При описании каждого приема программирования приводятся образцы кода, которые вы можете смело использовать.

Вандад Нахавандипур

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