потоки

  • Автор темы world12
  • Дата начала
Статус
Закрыто для дальнейших ответов.
W

world12

Гость
#1
Здраствуйте дорогие программисты!!!
Возникла такая проблема!!!
Задали написать программу состоящая из 3-х потоков. Каждый поток выводит горизонтальную линию....
Следующий поток рисует линию под той линией...
Проблема в том что у меня длина линиии сделана константной... А нужна сделать так, чтобы длина линии зависела от приоритета потока. Т.е. если первому потоку стоит максимальный приоритет, то его линии будут длинее остальных, но разные сами по длине....
Помогите мне исправить програму!!!!((((((
 

Вложения

VahaC

Well-Known Member
10.01.2007
116
0
#2
исправляем вот так
Код:
 public
{ Public declarations }
line1 : Integer;
PriorityThread1,PriorityThread2,PriorityThread3:TThreadPriority;  //управление приоритетами потоков
.....................
procedure ThreadId1.DrawingLine1;//поток рисование 1-ой линии
begin
Form1.PaintBox1.Canvas.Pen.Color:=line_Color1;//устанавливаем цвет линии
Form1.PaintBox1.Canvas.Pen.Width:=line_Height1;//устанавливаем ширину линии
Form1.PaintBox1.Canvas.MoveTo(x, y);//начальная координата линии
case Form1.PriorityThread1 of
tpIdle: Form1.line1 := 10;
tpLowest: Form1.line1 := 20;
tpLower: Form1.line1 := 30;
tpNormal: Form1.line1 := 40;
tpHigher: Form1.line1 := 50;
tpHighest: Form1.line1 := 60;
tpTimeCritical: Form1.line1 := 70;
end;
Form1.PaintBox1.Canvas.LineTo(x+Form1.line1, y);//рисуем линию заданной длины
end;
для двух остальных потоков аналогично
 
W

world12

Гость
#3
VahaC Это не много не то...
Вот допустим первому потоку поставлен приоритет реального времени. Значит система этому потоку будет выделять больше времени. Но это время будет разное. Линии все равно будут разного размера, но они будут длинее чем остальные...
Поэтому такой подход к сожалению не подходит((((((
 

VahaC

Well-Known Member
10.01.2007
116
0
#4
Слушай ты нормально(на пальцах) объясни чего надо.
А то я чегот не пойму
 

vital

Больной Компом Детектед
29.01.2006
2 432
42
#5
Слушай ты нормально(на пальцах) объясни чего надо.
По-моему, он сам не представляет, что хочет.
его линии будут длинее остальных, но разные сами по длине....
т.е. линия должна рисоваться ровно столько и ровно тогда, когда процессор обрабатывает поток? Вы это хотите? => чем больше процессор обрабатывает поток, тем длиннее линия. Так? Вот только это бред) Так не выйдет)
 
Статус
Закрыто для дальнейших ответов.