funkcja z DLL w wątku

0

Jak stworzyć dynamicznie kilka wątków wykonujących jednocześnie funkcję wczytaną z biblioteki DLL?

  1. nie wiem jak zrobić funkcję w wątku, gdyż kojarzą mi się one jedynie z procedurami (czytam o tym od 2 godzin)
  2. tym bardziej nie wiem jak to zrobić żeby ta funkcja była wczytana statycznie z DLL'a
  3. wątki muszą się tworzyć dynamicznie, w pętli gdyż będzie ich około 50 i wykonywać jednocześnie, żeby przyśpieszyć działanie programu jako całości.

Pozdrawiam.

0
  TReturnA=procedure Return(Result:Integer)of object;
  TThreadA=class(TThread)
  private
    A,B:Integer;
    Ret:TReturnA;
  protected
    procedure Execute;override;
  public
    constructor Create(pA,pB:Integer;pRet:TReturnA);
  end;

function Suma(A,B:Integer):Integer; external 'Suma.dll' name 'Suma';
procedure TThreadA.Execute;
begin
  Ret(Suma(A,B));
end;

constructor TThreadA.Create(pA,pB:Integer;pRet:TReturnA);
begin
  A:=pA;
  B:=pB;
  Ret:=pRet;
  inherited Create(false);
end;
0

a jak wywołać w programie dany rekord i podać mu parametry?

0

newermind xD
głupie pytanie xD
raczej jak dynamicznie stworzyć te rekordy o kolejnych numerach?
bo chyba tak trzeba, żeby się wykonywały równolegle?
czy jak po prostu wywołam je w pętli, to każdy będzie innym rekordem i będzie działał równolegle?

0

no dobra... przespałem się z tym, ale nadal nie łapię...
funkcja zwraca zmienną Integer...
ale my wywołujemy wątek nie podając do niego tych parametrów
czyli na stałe mamy przypisane z jakimi parametrami ma się wywołać funkcja

a po dwa to nijak nie mam pojęcia jak wynik funkcji przypisać do jakiejś zmiennej...
bo jak zrobić:
var
i:integer
begin
i:=......?!

0
newbie napisał(a)

ale my wywołujemy wątek nie podając do niego tych parametrów
czyli na stałe mamy przypisane z jakimi parametrami ma się wywołać funkcja

A ten kod?

constructor TThreadA.Create(pA,pB:Integer;pRet:TReturnA);
begin
  A:=pA;
  B:=pB;

Kolego, zanim zaczniesz przerabiać wątki, naucz się dokładnie co to wskaźniki i klasy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1