Einzelnen Beitrag anzeigen

Benutzerbild von littleDave
littleDave

Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
 
Delphi 7 Professional
 
#77

Re: ScriptEngine II (v. 0.5.1.0)

  Alt 18. Mai 2010, 23:09
Das Problem mit arrays ist halt: ich brauche sie im Moment nicht. Daher ist es für mich schwer mich dazu zu überwinden, arrays einzubauen. Zumal man mit TList etwas Ähnliches bekommen kann. Ich kann leider nicht sagen, wann ich arrays einbauen werde. Ich baue lieber Sachen ein, die ich gerade brauche. Natürlich will ich auch irgendwann arrays unterstützen, (da ich jedoch kein großer Fan von arrays bin), dauert das leider noch etwas. Ich welchem Zeitraum kann ich leider auch nicht sagen. Ich habs ja schon mal Versucht indem ich Version 0.5 gesagt habe *hust*. Daher will ich jetzt nicht v0.6, v0.7, v4.0, etc sagen und den gleichen Fehler nochmal machen. Hoffe, dass das etwas nachvollziehbar ist.

Weil ich gerade dabei bin, mach ich mal etwas Werbung für die nächste Version
In der nächsten Version, die bald kommen wird, kann man Multi-Threaded-Scripts erstellen - also eigene Threads im Script erstellen und ausführen. Dafür muss man den Delphi-Quelltext nicht anrühren. Es wird dabei Ähnlich wie in Delphi sein: man muss eine Klasse erstellen, die von einer bestimmten Klasse abgeleitet werden muss. Dort muss dann nur die Execute() - Methode überschrieben werden und fertig. Das ganze schaut dann so aus:

Delphi-Quellcode:
program Test;

uses
  System.Threading;

type
  TMyTest = class(TExecutionContext)
  protected
    procedure Execute; override;
  end;

procedure TMyTest.Execute;
begin
  TThread.Sleep(1000);
end;

var Context : TMyTest;
    Thread : TThread;
begin
  Context := TMyTest.Create;
  try
    Thread := TThread.NewThread(Context);
    try
      Thread.Start;
      while not (Thread.State = ThreadState.Finished) do
        { irgendwas } ;
    finally
      Thread.Free;
    end;
  finally
    Context.Free;
  end;
end.
Ist zwar noch nicht final, aber funktioniert schon super. Habe zum Test mal eine Primzahl-Berechnung auf 15 Threads aufgesplittet und hab die Ausführungszeit halbieren können (Dual-Core halt ). Wie gesagt, ist noch nicht fertig, daher dauert das noch ein wenig - jedoch nicht mehr lange

Gruß
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
  Mit Zitat antworten Zitat