Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Builder 6.0 потоки (http://forum.oszone.net/showthread.php?t=105090)

alextrs 15-04-2008 22:02 782172

Builder 6.0 потоки
 
У меня вопрос к тем, кто работал с потоками.

Такой фрагмент простой программы:

TMyPot *Thr= new TMyPot(true); // создаю поток в спящем режиме
--------------------------------------------------------------------------
void __fastcall TForm1::StartClick(TObject *Sender)
{

Thr->Resume();//т.е поток запускается при нажатии на Буттон Start

}
---------------------------------------------------------------------------------------------
void __fastcall TForm1::TSuspendClick(TObject *Sender)
{
Thr->Suspend();//т.е поток засыпает при нажатии на Буттон Suspend
}

Все работает,но вот,что я заметил-сколько раз нажмешь на кнопку Suspend,столько же раз надо нажать на кнопку Resume ,
что бы поток снова запустился?Кто знает почему это происходит и как этого избежать?Как будто количество Suspendov где-то сохраняется?
Может можно по-другому?

DillerInc 17-04-2008 19:21 783476

alextrs, уважаемый,читайте документацию,и будет меньше вопросов.
Цитата:

Цитата MSDN
Each thread has a suspend count (with a maximum value of MAXIMUM_SUSPEND_COUNT). If the suspend count is greater than zero, the thread is suspended; otherwise, the thread is not suspended and is eligible for execution. Calling SuspendThread causes the target thread's suspend count to be incremented. Attempting to increment past the maximum suspend count causes an error without incrementing the count.

The ResumeThread function decrements the suspend count of a suspended thread.

SuspendThread

alextrs 17-04-2008 21:32 783579

Спасибо! Я почти все понял.


Время: 03:02.

Время: 03:02.
© OSzone.net 2001-