AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi String von Thread an Programm senden - Stilfrage!
Thema durchsuchen
Ansicht
Themen-Optionen

String von Thread an Programm senden - Stilfrage!

Ein Thema von TheMiller · begonnen am 22. Feb 2008 · letzter Beitrag vom 25. Feb 2008
Antwort Antwort
Seite 5 von 5   « Erste     345   
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#41

Re: String von Thread an Programm senden - Stilfrage!

  Alt 24. Feb 2008, 21:26
Ja, aber ich hab nunmal (leider) DLLs. Vielleicht garnicht so schlecht. Habe glaub ich, wenn ich das alles richtig rauf habe, einiges dazu gelernt.

In meinen Testprogrammen ging das ja alles auch recht easy - waren ja auch keine DLLs! Jedenfalls bedanke ich mich nochmal recht herzlich.

PS: Ähm, ich könnte dieser Container-Klasse doch locker auch ein Array hinzufügen und von der Main-App sicher darauf zugriefen, richtig?
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#42

Re: String von Thread an Programm senden - Stilfrage!

  Alt 24. Feb 2008, 22:11
Also, du darfst alle Messages von WM_User bis (ich glaube) $C000 verwenden. du kannst auch noch mehr definieren, genauso, wie du noch mehr Variablen reinlegen kannst.

In dem beginwrite und endwrite etc. den Thread zu unterbechen, dürfte kein Problem sein, Macci. Wie gesagt, wenn die Klasse von TsimpleRWSync abgeleitet ist, dann wird im Hintergrund nur CriticalSection.enter bzw ~.leave aufgerufen. Was genau das TMultiReadExclusiveWriteSynchronizer im Hintergrund macht, ist mir nicht ganz bewusst. Außer dass es eben zwischen lesenden und schreibenden Zugriff unterscheidet. Und das ganze wird mit Events geregelt und mit einigen Interlocked-Funktionen. Sollte zu jedem Zeitpunkt threadsicher sein.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Macci

Registriert seit: 31. Mai 2007
129 Beiträge
 
#43

Re: String von Thread an Programm senden - Stilfrage!

  Alt 24. Feb 2008, 23:03
Japp, genau so ist es sirus. Der Unterschied zwischen Lesen und Schreiben wird einfach mit 2 binären Semaphoren von Delphi realsiert. Die könnte man auch selbst programmieren, ist aber hier nicht unbedingt nötig (wieso das Rad neu erfinden?). TMultiReadExclusiveWriteSynchronizer macht, wenn mich nicht alles täuscht, nichts anderes als diese Semaphore zu realsieren.

So wie du es geschrieben hast, müsste es gut funktionieren. Trotzdem sollte man Multithread-Anwendungen natürlich immer ausführlich testen, weil es kann sein, dass es 1000x gutgeht, und dann beim 1001. mal (beim Kunden) nicht. Am besten wäre es, die Funktionalität zu beweisen, was aber sehr schwer ist. (Ich finde dieses Beweisen schon bei Single-Thread Anwendungen sehr schwer)
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#44

Re: String von Thread an Programm senden - Stilfrage!

  Alt 25. Feb 2008, 15:55
Zitat von Macci:
TMultiReadExclusiveWriteSynchronizer macht, wenn mich nicht alles täuscht, nichts anderes als diese Semaphore zu realsieren.
'Nichts anderes' ist eine Untertreibung, schau Dir mal den Code an.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Macci

Registriert seit: 31. Mai 2007
129 Beiträge
 
#45

Re: String von Thread an Programm senden - Stilfrage!

  Alt 25. Feb 2008, 16:23
*codeanschau*

Delphi-Quellcode:
  TMultiReadExclusiveWriteSynchronizer = class
  private
...
  public
    constructor Create;
    destructor Destroy; override;
    procedure BeginRead;
    procedure EndRead;
    procedure BeginWrite;
    procedure EndWrite;
  end;
Japp, genau das, was ich sagte. Es sind 2 Semaphore (einer zum Lesen, und einer zum Schreiben).
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 5   « Erste     345   


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 17:03 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