| imho.ws |
![]() |
|
|
|
# 1 |
|
:::AAK:::
Регистрация: 25.01.2004
Сообщения: 915
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Функции Resume- и SuspendThread
Строятся параллельно две синусоиды (Delphi)...
Два потока: procedure StartThread1; var thrid:DWord; begin th1:=CreateThread(nil,0,@thr1,nil,0,thrid); end; procedure StartThread2; var thrid:DWord; begin th2:=CreateThread(nil,0,@thr2,nil,0,thrid); end; procedure TForm1.FormCreate(Sender: TObject); begin ... startthread1; startthread2; suspendthread(th2); ... end; Сами функции: function thr1:byte; begin y:=55+round(50*sin((x+dx)/25)); y1:=55+round(50*sin(x/25)); form1.image1.Canvas.Pen.Color:=cllime; form1.image1.Canvas.MoveTo(599,y); form1.image1.Canvas.LineTo(598,y1); resumethread(th2); suspendthread(th1); end; function thr2:byte; begin y:=65+round(50*sin((x+dx)/25)); y1:=65+round(50*sin(x/25)); form1.image1.Canvas.Pen.Color:=clyellow; form1.image1.Canvas.MoveTo(599,y); form1.image1.Canvas.LineTo(598,y1); form1.image1.Canvas.CopyRect(r2,form1.image1.Canvas,r1); form1.image1.Canvas.Pen.Color:=clactivecaption; form1.image1.Canvas.MoveTo(599,0); form1.image1.Canvas.LineTo(599,121); x:=x+dx; resumethread(th1); suspendthread(th2); end; Проблема: Один раз проходит, затем останавливается и не двигается... Продолжается построение только если, к примеру в таймере, опять сделать: startthread1; startthread2; Так и должно быть?
__________________
Тиха украинская ночь, но сало надо перепрятать!!! Последний раз редактировалось Kuzmich; 23.03.2005 в 18:49. |
|
|
|
|
# 3 | |
|
:::AAK:::
Регистрация: 25.01.2004
Сообщения: 915
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Кстати, это вообще похоже на синхронизацию или пример неудачный?
__________________
Тиха украинская ночь, но сало надо перепрятать!!! |
|
|
|
|
|
# 4 |
|
::VIP::
Регистрация: 19.03.2004
Сообщения: 1 329
![]() ![]() ![]() ![]() |
Конечно получится!
Рекомендую прочитать статейку http://callipso.bestcode.org/delphi/artical/num2.html |
|
|