![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
потоки
tim © (2008-03-26 02:48:00)Удалено модератором
Примечание: восстановление закрытой ветки
Palladin (2008-03-26 14:36:00) [1]ты статью читал на которую я дал тебе ссылку? ты понял для чего нужен synchronize? иди читай...
tim (2008-03-26 14:33:00) [2]сами по себе расчеты не большие,просто получается что сначала все данные прийдут,потом первая процедура пройдется по всем данным потом вторая и т.д., а с потоками было бы так,по мере появления данный потоки брали бы и анализировали вновь поступившие данные и я сразу бы видел уже какой то результат
MBo (2008-03-26 14:25:00) [3]>А так это довольно долго все будет высчитываться...
Многопоточность не увеличивает производительность компьютера.
tim (2008-03-26 14:15:00) [4]
> Да и неясно, почему для такой работы выбран отдельный поток
В listbox поступают данные через разные промежутки времени и есть с десятток процедур которые как только появляются новые данные должны их обрабатывать каждая по своему. А так это довольно долго все будет высчитываться...
MBo (2008-03-26 05:11:00) [5]В коде нет никакой синхронизации обращения к VCL-контролам, а так нельзя. Да и неясно, почему для такой работы выбран отдельный поток
Германн (2008-03-26 03:42:00) [6]
> дальше несколько сот строк кода парсинга
Да и этого уже достаточно. Книжки читай.
tim (2008-03-26 03:14:00) [7]get_links не из той кнопки взял,
procedure TForm1.Button8Click(Sender: TObject);
var
pot: TPotok;
begin
pot := TPotok.Create;
end;
procedure TPotok.Execute;
var
j, p, w, g, a, n, h, l, b, x: integer;
s, s_sh, new_s: string;
i, q: Integer;
pos_2: string;
pos_1: string;
list: wideString;
xz, gg: boolean;
col_cd, cx: Integer;
shablon: Boolean;
shablon_: boolean;
maximum: boolean;
list_shablon: TStringList;
begin
list_shablon := TStringList.Create;
//Clear
for i := 0 to form1.StringGrid1.RowCount - 1 do
begin
form1.StringGrid1.Cells[0, i] := '';
form1.StringGrid1.Cells[1, i] := '';
end;
for i := 1 to form1.StringGrid2.RowCount - 1 do
begin
form1.StringGrid2.Cells[1, i] := 'none';
form1.StringGrid2.Cells[2, i] := 'none';
end;
form1.StringGrid1.RowCount := 1;
list_shablon.Clear;
form1.ListBox1.Clear;
Form1.ListBox2.Clear;
shablon := form1.CheckBox2.Checked;
shablon_ := false;
maximum := Form1.CheckBox4.Checked;
if shablon then
form1.StringGrid2.Cells[1, 4] := 'YES'
else
form1.StringGrid2.Cells[1, 4] := 'NO';
if maximum then
form1.StringGrid2.Cells[1, 5] := 'YES'
else
form1.StringGrid2.Cells[1, 5] := 'NO';
Form1.StringGrid2.Cells[2,6] := 'Âêë.';
Form1.StringGrid2.Cells[2,7] := 'Âêë.';
for i:=0 to form1.listbox1.count - 1 do
begin
text := form1.listbox1.items.strings[i];
дальше несколько сот строк кода парсинга
end;
end;
Джо (2008-03-26 02:55:00) [8]В приведенном коде нет никаких окон. Более того, в нем нет даже объявления класса TGet_links.
Теперь понятно, почему прикрыли тему.