AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Programmablauf in VM korrekt, ohne VM nicht
Thema durchsuchen
Ansicht
Themen-Optionen

Programmablauf in VM korrekt, ohne VM nicht

Ein Thema von dGeek · begonnen am 28. Mär 2015 · letzter Beitrag vom 28. Mär 2015
Antwort Antwort
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

AW: Programmablauf in VM korrekt, ohne VM nicht

  Alt 28. Mär 2015, 13:45
Machst du denn auch TThread.Synchronize oder TThread.Queue um die Nodes hinzuzufügen? VCL Zugriffe aus einem zweiten Thread heraus musst du immer synchronisieren, sonst passieren unter anderem solche Freezes.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.880 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Programmablauf in VM korrekt, ohne VM nicht

  Alt 28. Mär 2015, 13:47
Möglicherweise stellt die VM Software nur eine CPU bereit, so dass Du in der VM Glück hast, dass es funktioniert.
Markus Kinzler
  Mit Zitat antworten Zitat
dGeek
(Gast)

n/a Beiträge
 
#3

AW: Programmablauf in VM korrekt, ohne VM nicht

  Alt 28. Mär 2015, 13:51
Das Hinzufügen der Nodes ist synchronisiert, richtig.

Und mit der CPU das stimmt auch, die VM hat nur eine CPU bzw einen Kern zur Verfügung.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

AW: Programmablauf in VM korrekt, ohne VM nicht

  Alt 28. Mär 2015, 13:54
Wenn das Hinzufügen synchronisiert ist, hast du wohl an irgendeiner anderen Stelle eine Race Condition, die bei einer CPU nicht auffällt. Immer schwer sowas zu finden. Würde erstmal alles nach unsynchronisierten VCL Zugriffen absuchen und danach schauen, ob du vom Main Thread und vom zweiten Thread aus auf gemeinsame Variablen/Speicherbereiche zugreifst, die eventuell eine Critical Section benötigen.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
dGeek
(Gast)

n/a Beiträge
 
#5

AW: Programmablauf in VM korrekt, ohne VM nicht

  Alt 28. Mär 2015, 14:46
Ich glaube den Fehler nun gefunden zu haben.
Die Race Conditions haben mich zum Nachdenken gebracht was 3rd-Party-Code angeht.

Ich hatte hier noch den SJMmfFileReader (http://www.delphipraxis.net/151898-s...ei-reader.html) in Verwendung, welcher für diesen Zweck aber nicht geeignet war.

Ich habe alles testweise auf eine normale Stringlist umgestellt und von einer While- auf eine For-Schleife gewechselt > weniger Probleme.
Danach habe ich den kompletten Code in der For-Schleife mit Synchronize umschlossen > noch weniger Probleme. Aber dennoch ab und zu (1 Mal in 3 Versuchen).

Sehr seltsam.

Edit:
ich habe nun allen Code vom zweiten Thread in den Mainthread verpackt.
Sehr komisch manchmal, dass es nicht funktioniert obwohl man alles richtig macht.

Geändert von dGeek (28. Mär 2015 um 15:20 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz