AGB  ·  Datenschutz  ·  Impressum  







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

Thread Problem?

Ein Thema von zeras · begonnen am 9. Mai 2020 · letzter Beitrag vom 13. Mai 2020
Antwort Antwort
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.651 Beiträge
 
Delphi 12 Athens
 
#1

Thread Problem?

  Alt 9. Mai 2020, 18:30
Delphi-Version: 10.3 Rio
Hallo,

ich suche nach der Ursache eines Fehlers, wobei ich vermute, dass es mit einem Thread zu tun hat.
Zum Thema:
Wir haben auf Arbeit ein Programm, welches u.a. mittels integrierten Python Dateien manipuliert und diese dann wieder abspeichert. Das funktioniert sehr gut. Python wird genutzt, damit man auf verschiedene Parameter reagieren kann.
Nennen wir es Programm1.
Da die Funktionen des Öfteren benötigt wird, habe ich ein Programm2 geschrieben, welches die Funktionalität von Programm1 nutzt. Es ruft Programm1 in einem Thread auf und wartet, bis das Programm1 beendet ist. Danach werden die manipulierten Dateien gesichert.
Nun kommt es vor, dass Programm1 abstürzt.
Was ich bis jetzt herausgefunden habe ist, dass wenn man in den Python Scripts bei Dateioperationen sleep einbaut, dass es vermeintlich besser läuft. Ich könnte mir vorstellen, dass es zu Konflikten mit Dateien kommt, dass beispielsweise eine Datei kopiert wird, aber schon darauf zugegriffen wird.
Kann es sein, dass wenn das Programm1 in einen Thread läuft, dass dann vielleicht anders reagiert, als wenn man das Programm1 einfach nur startet.

Ist das verständlich?
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain

Geändert von zeras ( 9. Mai 2020 um 18:57 Uhr) Grund: weitere Infos eingebaut
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.196 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Thread Problem?

  Alt 9. Mai 2020, 18:35
Was ist "Programm" - Ein eigener Prozess?
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.651 Beiträge
 
Delphi 12 Athens
 
#3

AW: Thread Problem?

  Alt 9. Mai 2020, 18:44
Was ist "Programm" - Ein eigener Prozess?
Programm1 wird als separater Thread vom Programm2 aufgerufen.
Reicht das als Info?
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.490 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Thread Problem?

  Alt 9. Mai 2020, 20:39
Ich denke nicht.
Es ist noch viel unklar. Wie bekommst ihr das Python den in Delphi rein?
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.651 Beiträge
 
Delphi 12 Athens
 
#5

AW: Thread Problem?

  Alt 9. Mai 2020, 22:35
Vielleicht noch weitere Infos.

Programm1 startet verschiedene Python Scripte. Diese werden abgearbeitet und fertig. Alles OK.
Programm2 startet Programm1 und übergibt auch die gleichen Python Scripte.
Der Unterschied meines Erachtens ist, dass das Programm1 im Hauptthread läuft, das Programm2 als separater Thread im Programm2.
Das Programm2 startet einen Thread mit einer Schleife, die das Programm1 immer wieder mit neuen Parametern startet.
Die Scripte verarbeitet aber immer das Programm1.

Programm1 (ein fertiges Programm, kein Delphi, hier kann nichts geändert werden)
- Programm1 lädt Scripte und führt diese aus. Nach Info meiner Kollegen gibt es keine Probleme.

Programm2 (Delphi Programm, hier kann ich eventuell etwas ändern)
- Programm2 startet
- erzeugt einen Thread, der unabhängig vom UI Thread läuft
- Dateien werden bereitgestellt
- Programm1 wird mit Parameter (Python Scripte) gestartet. Hier werden die Python Scripte verarbeitet. Wenn ich in den Scripten zwischen den Dateimanilulationen immer ein sleep einbaue, scheint das sauber durchzulaufen. Deshalb hier die Frage, ob alles sequenziell verarbeitet wird, oder vielleicht ein Handle noch auf eine Datei zeigt, die vielleicht schon gelöscht wurde. Kann man sicher sein, dass alles sequenziell verarbeitet wird?
- Programm1 ist fertig
- Dateien werden gesichert
- Thread beginnt von vorn mit neuen Daten
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.683 Beiträge
 
Delphi 5 Professional
 
#6

AW: Thread Problem?

  Alt 9. Mai 2020, 23:36
Etwas Grundsätzliches zu den Begrifflichkeiten: Programme arbeiten immer in ihren eigenen Prozessen, und niemals in Threads anderer Programme/Prozesse. Jeder Prozess hat seine eigenen Threads. Selbst wenn man dieselbe EXE mehrfach startet, hat jeder Prozess seine eigenen Threads. Klar, es gibt DLL Injection und andere Spielchen, aber selbst dann läuft kein Prozess von Programm 2 als Thread von Programm 1. Prozesse und Threads sind verschiedene Dinge, erstere enthalten letztere, aber niemals umgekehrt.

Grüße
Dalai
  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 20:51 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