AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

begin thread und syncronize?

Offene Frage von "richard_boderich"
Ein Thema von richard_boderich · begonnen am 3. Nov 2005 · letzter Beitrag vom 4. Nov 2005
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#11

Re: begin thread und syncronize?

  Alt 3. Nov 2005, 22:17
Punkt 4 kannst du dir sparen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#12

Re: begin thread und syncronize?

  Alt 3. Nov 2005, 22:23
ok danke leute werd es gleich ma versuchen

vielen , vielen herzlichen dank Luckie und SirThornberry

Gruß Richard
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#13

Re: begin thread und syncronize?

  Alt 4. Nov 2005, 09:24
so, ich hab das jetzt mal probiert, nur traegt er jetz nichts mehr ins stringgrid ein.
die routine wird aber definitiv ausgefuehrt, da er die messagebox anzeigt.

ich denke es koennte daran liegen, das mehrere threads versuchen gleichzeitig auf verschiedene
cellen des stringgrid zuzugreiffen. komisch is auch das die vcl kurzzeitig haengt, wenn die
threads laenger arbeiten muessen. ich hab mal probiert waitformultibleobjects Infinite durch
einen zahlenwert zu ersetzten. (100) -> vcl haengt nicht mehrm aber ins stringgrid wird trozdem nichts gezeichnet.

gruß richard
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#14

Re: begin thread und syncronize?

  Alt 4. Nov 2005, 10:19
Ich habe das gerade mit einer DLL in C und einem Hauptprogramm in Delphi implementiert und es funktioniert problemlos.
LParam nutze ich als einen Zeiger auf eine Struktur. Das geht deshalb gut, da die DLL ja im gleichen Adressraum wie das Programm steht und daher der Zeiger gueltig ist. SendMessage garantiert das der Thread nicht weiterlaeuft und die Struktur veraendert.
Jetzt muss ich nur noch rauskriegen wie ich Threadsynchronisation unter Linux mache, ohne das mein API leidet.

Delphi-Quellcode:
unit BlaMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls,
  BlaKit;

type
  TBlaMainForm = class(TForm)
    // deleted
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  public
    BlaDev: Pointer;
    CallbackMsg: ULONG;
    function CallbackEvent(var Msg: TMessage): Boolean;
  end;

var
  BlaMainForm: TBlaMainForm;

implementation

{$R *.dfm}

function TBlaMainForm.CallbackEvent(var Msg: TMessage): Boolean;
var
  I: Integer;
  BlaData: PBLA_DATA;
begin
  // check for message from DLL
  Result := Msg.Msg = CallbackMsg;
  if Result then
  begin
    // LParam of message contains pointer to BLA_DATA structure
    BlaData := PBLA_DATA(Msg.LParam);
    // deleted
  end;
end;

procedure TBlaMainForm.FormCreate(Sender: TObject);
begin
  // deleted

  // hook the message received
  Application.HookMainWindow(CallbackEvent);
  // tell the DLL to send messages when data is received
  // returns the message ID used with SendMessage
  CallbackMsg := BlaRegister(BlaDev, Application.Handle);
end;

procedure TblaMainForm.FormDestroy(Sender: TObject);
begin
  Application.UnhookMainWindow(CallbackEvent);
  // deleted
end;

end.
Sorry, das Programm ist etwas ausgeschlachtet, da das zugehoerige Produkt noch nicht fertig ist.
  Mit Zitat antworten Zitat
Vjay

Registriert seit: 2. Dez 2003
Ort: Berlin/Eschede
481 Beiträge
 
Delphi 7 Professional
 
#15

Re: begin thread und syncronize?

  Alt 4. Nov 2005, 11:10
Nur zur Anmerkung, die Synchronize-Methode aus dem TThread-Objekt macht auch nichts anderes
Wer später bremst ist eher tot.
  Mit Zitat antworten Zitat
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#16

Re: begin thread und syncronize?

  Alt 4. Nov 2005, 11:22
ich hab es ja jetz ueber message gemacht, und er synchronisiert jetz auch, traegt aber nix ins stringgrid ein. folglich muss das problem wo anders zu suchen sein ich vermute mal bei waitformultibleobjects

weis nicht ob das richtig ist wenn mehrere treads parallel auf ein vcl object zugreifen

richard
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz