Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.54/125: Рейтинг темы: голосов - 125, средняя оценка - 4.54
37 / 15 / 3
Регистрация: 15.07.2010
Сообщений: 326

[Delphi] Многопоточность

29.08.2010, 11:10. Показов 26399. Ответов 67
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Интерисует след. вопрос:
"Как сделать создание потоков? (кол-во зависит от того сколько укажет пользователь)"

Хотелось бы увидеть "готовый код", лазя по гуглу оч много информации, но там слишком много лишнего текста читая который тупо мозг взрывается ))

Добавлено через 4 минуты
+ как сделать синхронизацию (Первый пост редактировать не могу, проблемы в опере...)

Добавлено через 19 часов 3 минуты
Есть следующие строчки
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
  TNewThread = class(TThread)
  private
  protected
    procedure Execute; override;
  public
    constructor Create(CreateSuspended: Boolean);
  end;
 
constructor TNewThread.Create(CreateSuspended: Boolean);
begin
  inherited Create(CreateSuspended);
end;
 
 
procedure TNewThread.Execute;
begin
 
end;
 
 
 TNewThread.Create(false);
Если последнюю строчку я зациклю циклом for у меня будут создаваться новые потоки? или будет циклиться один?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.08.2010, 11:10
Ответы с готовыми решениями:

Многопоточность в Delphi
Доброго времени суток однако, люди помоги, есть следующая задача: нужно создать программу которая вычисляет простоту числа 3-мя потоками,...

Подскажите где можно почитать про многопоточность в Delphi
Всем привет! Из названия темы уже ясно, что мне нужна информация по многопоточности в Delphi. Дайте пару линков где можно найти почитать...

Что лучше брать Delphi XE2, Delphi XE, Delphi 7?
Привет форумчане! У меня вопрос: что лучше брать Delphi XE2, Delphi XE, Delphi 7? Как вообще различаются серия Delphi XE, и Delphi 7?

67
 Аватар для Vas-e-na
420 / 417 / 79
Регистрация: 21.06.2010
Сообщений: 1,362
12.09.2010, 14:24
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от WestSide072 Посмотреть сообщение
компилятор ругается на строчки
есстествено:
Цитата Сообщение от WestSide072 Посмотреть сообщение
Delphi
1
IdHTTP:=ThreadidHttp;
Цитата Сообщение от WestSide072 Посмотреть сообщение
Delphi
1
ThreadHttp: TidHttp
ищем 10 отличий...
Цитата Сообщение от WestSide072 Посмотреть сообщение
Delphi
1
2
hThread: THandle;
 ThreadID: dword;
а вот на это я уверен что компилятор не жалуется,ошибка вот так выглядит:
Code
1
[Hint] Переменная *** объявлена в модуле *** но не используется
Цитата Сообщение от WestSide072 Посмотреть сообщение
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
IdHTTP1: TIdHTTP;
 IdHTTP2: TIdHTTP;
 IdHTTP3: TIdHTTP;
 IdHTTP4: TIdHTTP;
 IdHTTP5: TIdHTTP;
 IdHTTP6: TIdHTTP;
 IdHTTP7: TIdHTTP;
 IdHTTP8: TIdHTTP;
 IdHTTP9: TIdHTTP;
 IdHTTP10: TIdHTTP;
 IdHTTP11: TIdHTTP;
 IdHTTP12: TIdHTTP;
 IdHTTP13: TIdHTTP;
 IdHTTP14: TIdHTTP;
 IdHTTP15: TIdHTTP;
 IdHTTP16: TIdHTTP;
 IdHTTP17: TIdHTTP;
 IdHTTP18: TIdHTTP;
 IdHTTP19: TIdHTTP;
 IdHTTP20: TIdHTTP;
 IdHTTP21: TIdHTTP;
 IdHTTP22: TIdHTTP;
 IdHTTP23: TIdHTTP;
 IdHTTP24: TIdHTTP;
 IdHTTP25: TIdHTTP;
 IdHTTP26: TIdHTTP;
 IdHTTP27: TIdHTTP;
 IdHTTP28: TIdHTTP;
 IdHTTP29: TIdHTTP;
 IdHTTP30: TIdHTTP;
Что за бред??? с массивами знакомы???
Цитата Сообщение от WestSide072 Посмотреть сообщение
hSemaphore: THandle;
и кстати, семафор на более не нужен ибо каждый поток будет работать со своим собственным объектом, т.е. разделяемых ресурсов нет, следовательно нечего синхронизировать...

Добавлено через 4 минуты
Цитата Сообщение от WestSide072 Посмотреть сообщение
Delphi
1
Execute.Create(false);
для чего мы писали свой конструктор??? чтоб использовать стандартный?- нет!
1
37 / 15 / 3
Регистрация: 15.07.2010
Сообщений: 326
12.09.2010, 17:29  [ТС]
Цитата Сообщение от Vas-e-na Посмотреть сообщение
есстествено:


ищем 10 отличий...

а вот на это я уверен что компилятор не жалуется,ошибка вот так выглядит:
Code
1
[Hint] Переменная *** объявлена в модуле *** но не используется
Что за бред??? с массивами знакомы???

и кстати, семафор на более не нужен ибо каждый поток будет работать со своим собственным объектом, т.е. разделяемых ресурсов нет, следовательно нечего синхронизировать...

Добавлено через 4 минуты

для чего мы писали свой конструктор??? чтоб использовать стандартный?- нет!
[Hint] Unit1.pas(47): Private symbol 'hThread' declared but never used
[Hint] Unit1.pas(48): Private symbol 'ThreadID' declared but never used

С массивами незнаком...

Как семафор не нужен?! А вывод в memo1? разве его не нужно синхронизировать?

и как правильно запустить конструктор?
0
 Аватар для Vas-e-na
420 / 417 / 79
Регистрация: 21.06.2010
Сообщений: 1,362
12.09.2010, 17:53
Цитата Сообщение от WestSide072 Посмотреть сообщение
[Hint] Unit1.pas(47): Private symbol 'hThread' declared but never used
[Hint] Unit1.pas(48): Private symbol 'ThreadID' declared but never used
что и требовалось доказать....
если вас этот хинт так бесит просто удалите объявление этих переменных.

Добавлено через 1 минуту
Цитата Сообщение от WestSide072 Посмотреть сообщение
Как семафор не нужен?! А вывод в memo1? разве его не нужно синхронизировать?
пардон, значит нужен

Добавлено через 2 минуты
Цитата Сообщение от WestSide072 Посмотреть сообщение
С массивами незнаком...
придется ознакомится, т.к. нам нужны массивы, один для потоков (их же надо как то остановить), другой для idhhtp (не будем же мы вручную добавлять столько компонентов...)
1
37 / 15 / 3
Регистрация: 15.07.2010
Сообщений: 326
12.09.2010, 18:23  [ТС]
Цитата Сообщение от Vas-e-na Посмотреть сообщение
что и требовалось доказать....
если вас этот хинт так бесит просто удалите объявление этих переменных.

Добавлено через 1 минуту

пардон, значит нужен

Добавлено через 2 минуты

придется ознакомится, т.к. нам нужны массивы, один для потоков (их же надо как то остановить), другой для idhhtp (не будем же мы вручную добавлять столько компонентов...)
Немного погуглив нашел следующее
Delphi
1
var ByteArr: array[1..2] of byte;
и
Code
1
2
3
4
5
For i:=<начальное значение> to<конечное значение> do begin
    <имя массива>[i]:=<имя класса>.Create(Self);
    <имя массива>[i].Parent:=Self; //за объект ответит форма, на которой он создан
    //<присвоение других свойств - по необходимости>
   end;
я попробовал написать пару строк по шаблону...
Delphi
1
2
3
4
5
6
7
8
var l:array[1..5000] of тут что?!;
b,i:Integer;
b:=StrToInt(sEdit1.Text);
for i:=0 to b do
begin
l[i]:=TIdHttp.Create(Self);
l[i]:=.Parent:=Self;
end;
Добавлено через 1 минуту
[Offtop]Что делать когда опера отказывается редактировать посты?! тупо кнопка "сохранить"и остальные жмутся...[/Offtop]
0
 Аватар для Vas-e-na
420 / 417 / 79
Регистрация: 21.06.2010
Сообщений: 1,362
12.09.2010, 18:28
Цитата Сообщение от WestSide072 Посмотреть сообщение
Немного погуглив нашел следующее
хреново гуглишь.... http://www.delphibasics.co.uk/... ame=Arrays (мой любимый сайт по основам делфи)

Добавлено через 2 минуты
в кратце про массивы:
объявление:
Delphi
1
2
3
4
5
MyArray: array 
    {если статический то}
      [<индекс первого элемента>..<индекс послденего элемента>]
    {конец если}
    of <тип элементов массива>;
Добавлено через 44 секунды

Не по теме:

Цитата Сообщение от WestSide072 Посмотреть сообщение
Что делать когда опера отказывается редактировать посты?! тупо кнопка "сохранить"и остальные жмутся...
поставить линух, там опера норм работает, а под виндой у меня тоже много глюков было...

1
37 / 15 / 3
Регистрация: 15.07.2010
Сообщений: 326
12.09.2010, 18:38  [ТС]
Цитата Сообщение от Vas-e-na Посмотреть сообщение
хреново гуглишь.... http://www.delphibasics.co.uk/... ame=Arrays (мой любимый сайт по основам делфи)

Добавлено через 2 минуты
в кратце про массивы:
объявление:
Delphi
1
2
3
4
5
MyArray: array 
    {если статический то}
      [<индекс первого элемента>..<индекс послденего элемента>]
    {конец если}
    of <тип элементов массива>;
Добавлено через 44 секунды

Не по теме:


поставить линух, там опера норм работает, а под виндой у меня тоже много глюков было...

Delphi
1
2
3
4
 type
   TDays = array[1..7] of string;
 const
   Days : TDays = ('Mon','Tue','Wed','Thu','Fri','Sat','Sun');
В консте обзываются переменные Days класса TDays? я прально сказал?

Добавлено через 1 минуту
Delphi
1
2
3
4
5
6
7
8
var l:array[1..5000] of String;
b,i:Integer;
b:=StrToInt(sEdit1.Text);
for i:=0 to b do
begin
l[i]:=TIdHttp.Create(Self);
l[i]:=.Parent:=Self;
end;
а что тут неправильно?
0
 Аватар для Vas-e-na
420 / 417 / 79
Регистрация: 21.06.2010
Сообщений: 1,362
12.09.2010, 18:46
Цитата Сообщение от WestSide072 Посмотреть сообщение
Delphi
1
2
3
var l:array[1..5000] of String;
{...}
l[i]:=TIdHttp.Create(Self);
как то типы классов не совпадают, объявлен string, а создан Tidhttp

Добавлено через 53 секунды
Цитата Сообщение от WestSide072 Посмотреть сообщение
В консте обзываются переменные Days класса TDays? я прально сказал?
в данном случае Tdays не класс, а тип.... а так вроде более менее....

Добавлено через 1 минуту
потом, логично объявить наши два массива в классе формы...
1
37 / 15 / 3
Регистрация: 15.07.2010
Сообщений: 326
12.09.2010, 19:16  [ТС]
Цитата Сообщение от Vas-e-na Посмотреть сообщение
как то типы классов не совпадают, объявлен string, а создан Tidhttp

Добавлено через 53 секунды

в данном случае Tdays не класс, а тип.... а так вроде более менее....

Добавлено через 1 минуту
потом, логично объявить наши два массива в классе формы...
Если я правильно понимаю то массив создания TIdHttp вписывается в конструктор?
0
 Аватар для Vas-e-na
420 / 417 / 79
Регистрация: 21.06.2010
Сообщений: 1,362
12.09.2010, 19:27
Цитата Сообщение от WestSide072 Посмотреть сообщение
конструктор?
конструктор чего??? как говорится код в студию...
1
37 / 15 / 3
Регистрация: 15.07.2010
Сообщений: 326
12.09.2010, 19:33  [ТС]
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdHTTP, StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    Edit1: TEdit;
    IdHTTP1: TIdHTTP;
    procedure Button1Click(Sender: TObject);
  private
    hThread: THandle;
    ThreadID: dword;
    { Private declarations }
  public
  l:array[1..5000] of TIDHTTP;
  b,i:Integer;
    { Public declarations }
  end;
 
   Execute = class(TThread)
  private
 
      idHttp: TidHttp;
  protected
    procedure Execute; override;
  public
    constructor Create(ThreadHttp: TidHttp;CreateSuspended: Boolean);
  end;
 
var
  Form1: TForm1;
    hSemaphore: THandle;
  i: word;
  k:Integer;
 
implementation
 
{$R *.dfm}
 
constructor Execute.Create(ThreadHttp: TidHttp;CreateSuspended: Boolean);
begin
  inherited Create(CreateSuspended);
  IdHTTP:=ThreadHttp;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var pn,pm:Integer;
begin
pm:=StrToInt(Form1.Edit1.Text);
for pn:=0 to pm do
begin
l[pn]:=TIdHttp.Create(Self);
l[pn]:=Parent:=Self;
hSemaphore:=CreateSemaphore(nil,1,1,nil);
//как создавать поток новым конструктором?
end
end;
 
procedure Execute.Execute;
var wait: dword;
begin
  while 0=0 do
  begin
    wait:=WaitForSingleObject(hSemaphore,INFINITE);
        i:=i+1;
    Form1.Memo1.Lines.Add(IntTOStr(i));
    Form1.IdHttp1.Get('http://WestSide072.ucoz.ru');
     ReleaseSemaphore(hSemaphore,1,nil);
    end;
    end;
 
end.
0
 Аватар для Vas-e-na
420 / 417 / 79
Регистрация: 21.06.2010
Сообщений: 1,362
12.09.2010, 20:02
прежде чем создавать объекты потоки, надо сначала объявить массив этих объектов (длина массива должна равнятся длинне массива idhttp)
1
37 / 15 / 3
Регистрация: 15.07.2010
Сообщений: 326
12.09.2010, 20:46  [ТС]
Цитата Сообщение от Vas-e-na Посмотреть сообщение
прежде чем создавать объекты потоки, надо сначала объявить массив этих объектов (длина массива должна равнятся длинне массива idhttp)
я не понял... (
0
 Аватар для Vas-e-na
420 / 417 / 79
Регистрация: 21.06.2010
Сообщений: 1,362
12.09.2010, 21:50
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdHTTP, StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    Edit1: TEdit;
    IdHTTP1: TIdHTTP;
    procedure Button1Click(Sender: TObject);
  private
    aIdHTTP: array [0..5000] of TIdHTTP;
    aIThread: array [0..5000] of TIThread;
  public
    b,i:Integer;
  end;
 
  TIThread = class(TThread)
  private
    idHttp: TidHttp;
  protected
    procedure Execute; override;
  public
    constructor Create(ThreadHttp: TidHttp;CreateSuspended: Boolean);
  end;
 
var
  Form1: TForm1;
    hSemaphore: THandle;
  j: word;
  k:Integer;
 
implementation
 
{$R *.dfm}
 
constructor TIThread.Create(ThreadHttp: TidHttp;CreateSuspended: Boolean);
begin
  inherited Create(CreateSuspended);
  IdHTTP:=ThreadHttp;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var i:word;
begin
  hSemaphore:=CreateSemaphore(nil,1,1,nil);
  for i:=0 to 5000 do
  begin
    aIdHTTP[i]:=TIdHttp.Create(Self);
    aIdHTTP[i].Parent:=Self;
    aIThread[i]:=TIThread.Create(aIdHTTP[i], true);
    aIThread[i].FreeOnTerminate:=true;
    aIThread[i].Resume;
  end
end;
 
procedure TIThread.Execute;
begin
  while true do
  begin
    idHttp.Get('http://WestSide072.ucoz.ru');
    WaitForSingleObject(hSemaphore,INFINITE);
    j:=j+1;
    Form1.Memo1.Lines.Add(IntTOStr(i));
    ReleaseSemaphore(hSemaphore,1,nil);
  end;
end;
 
end.
вот так должно работать, но
1. Массив статичен, но ты зачем то пытаешься работать с ним как с динамичным, выбери либо первое либо второе (щас реализовано первое)
2. А зачем вывод в Мемо??? там же будут идти числа по порядку независимо от того какой поток работает...
3. Здесь нет завершения потока, добавишь сам....
будут вопросы - пиши
1
37 / 15 / 3
Регистрация: 15.07.2010
Сообщений: 326
13.09.2010, 11:22  [ТС]
Поисправлял некоторые ошибки, осталось
[Error] Unit1.pas(56): Undeclared identifier: 'Parent'
[Error] Unit1.pas(57): Incompatible types: 'Boolean' and 'TIdHTTP'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

Исправленный код выглядит так
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdHTTP, StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    aIdHTTP: array [0..5000] of TIdHTTP;
    aThread: array [0..5000] of TThread;
  public
    b,i:Integer;
  end;
 
  TIThread = class(TThread)
  private
    idHttp: TidHttp;
  protected
    procedure Execute; override;
  public
    constructor Create(ThreadHttp: TidHttp;CreateSuspended: Boolean);
  end;
 
var
  Form1: TForm1;
    hSemaphore: THandle;
  j: word;
  k:Integer;
 
 
implementation
 
{$R *.dfm}
 
constructor TIThread.Create(ThreadHttp: TidHttp;CreateSuspended: Boolean);
begin
  inherited Create(CreateSuspended);
  IdHTTP:=ThreadHttp;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var i:word;
begin
  hSemaphore:=CreateSemaphore(nil,1,1,nil);
  for i:=0 to 5000 do
  begin
    aIdHTTP[i]:=TIdHttp.Create(Self);
    aIdHTTP[i].Parent := Self;
    aThread[i]:=TThread.Create(aIdHTTP[i], true);
    aThread[i].FreeOnTerminate:=true;
    aThread[i].Resume;
  end
end;
 
procedure TIThread.Execute;
begin
  while true do
  begin
    idHttp.Get('http://WestSide072.ucoz.ru');
    WaitForSingleObject(hSemaphore,INFINITE);
    j:=j+1;
    Form1.Memo1.Lines.Add('Connect');
    ReleaseSemaphore(hSemaphore,1,nil);
  end;
end;
 
end.
0
 Аватар для Vas-e-na
420 / 417 / 79
Регистрация: 21.06.2010
Сообщений: 1,362
13.09.2010, 14:06
Цитата Сообщение от WestSide072 Посмотреть сообщение
[Error] Unit1.pas(56): Undeclared identifier: 'Parent'
значит у idHttp нет свойства Parent

Добавлено через 26 секунд
Цитата Сообщение от Vas-e-na Посмотреть сообщение
aIThread[i]:=TIThread.Create(aIdHTTP[i], true);
Цитата Сообщение от WestSide072 Посмотреть сообщение
aThread[i]:=TThread.Create(aIdHTTP[i], true);
найдите 10 отличий
1
37 / 15 / 3
Регистрация: 15.07.2010
Сообщений: 326
13.09.2010, 17:05  [ТС]
Цитата Сообщение от Vas-e-na Посмотреть сообщение
значит у idHttp нет свойства Parent

Добавлено через 26 секунд


найдите 10 отличий
Как сделать свойство "Parent"?
2 исправил...
0
 Аватар для Vas-e-na
420 / 417 / 79
Регистрация: 21.06.2010
Сообщений: 1,362
13.09.2010, 18:14
Цитата Сообщение от WestSide072 Посмотреть сообщение
Как сделать свойство "Parent"?
удалить строку и всё....
1
37 / 15 / 3
Регистрация: 15.07.2010
Сообщений: 326
16.09.2010, 06:42  [ТС]
Теперь я начал пытаться остановить потоки, если я правильно понимаю то в поток надо вписать исключение по прохождению которого будет запускаться
Code
1
2
3
4
Suspended – если равно True то поток находится в паузе. 
Terminated – если равно True то поток должен быть остановлен. Иначе он продолжит работу. 
Terminate – Мочи козла. Без комментариев. :))))))))))))) 
FreeOnTerminate – если равно True то по завершении работы поток самоуничтожиться…
верно?
0
 Аватар для Vas-e-na
420 / 417 / 79
Регистрация: 21.06.2010
Сообщений: 1,362
16.09.2010, 15:38
Цитата Сообщение от WestSide072 Посмотреть сообщение
в поток надо вписать исключение по прохождению которого будет запускаться
не понял....
Цитата Сообщение от WestSide072 Посмотреть сообщение
верно?
да
1
37 / 15 / 3
Регистрация: 15.07.2010
Сообщений: 326
16.09.2010, 20:07  [ТС]
Цитата Сообщение от Vas-e-na Посмотреть сообщение
не понял....

да
ну вот пример
в поток дописать
Delphi
1
2
3
4
5
If lk=100500
then
begin
FreeOnTerminate:=True;
end
а в кнопку
Delphi
1
lk:=100500
я в ту сторону думаю?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.09.2010, 20:07
Помогаю со студенческими работами здесь

Многопоточность
Видел много статей по многопоточности,но мне надо просто самое основное. var s:string; begin s:='qwe'; showmessage(s); ...

Многопоточность
Гуглил, информации в интернете много, даже слишком, поэтому голова уже взрывается. Суть проблемы: есть форма, есть цикл, при работе цикла...

Многопоточность
Добрый день. Возникал у меня следующая проблема. Пишу программу по расчетам фазового равновесия пар-жидкость. В основном достаточно сложная...

Многопоточность
Здравствуйте! Прошу помочь реализовать многопоточность. Написал брут, когда запускаю в 1 поток, всё идёт ок, как запускаю в 2 и более всё...

многопоточность
Всем привет! Вопрос в следующем: файл скачивается из интернета с помощью следующей функции: function GetInetFile(const fileURL,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации: В классе Работник добавить: накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни коэффициентПрезентеизма — снижает продуктивность. . .
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день. Для работы необходим браузер,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru