<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Hilfe bei Thread Programmierung]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich möchte gerne einen zweiten Thread eröffnen, damit während Berechnungen Zwischenergebnisse ausgegeben werden können.</p>
<p>Ich bin grundsätzlich mit der Thread Programmierung vertraut. Bin aber mittlerweile in meinem Projekt ein bisschen durcheinander gekommen.</p>
<p>Ich habe eine Unit1, die nur das Formular und deren Komponenten verwendet wird.</p>
<p>In Unit2 steht der komplette Programmcode, den ich durchlaufen möchte. Es sind bis jetzt ca. 30 einzelne Funktionen, die immerwieder untereinander aufgerufen werden.</p>
<p>Jetzt habe ich ein TThread Objekt hinzugefügt. Dazu wurde eine neue Unit3 angelegt.</p>
<p>Kann ich in der ersten Unit den Thread eröffnen, in der Execute-Methode des Threads die Initialfunktion aus Unit2 aufrufen und in Unit2 irgendwie Werte übergeben, damit auf der Form Zwischenergebnisse ausgegeben werden? Ich komme nicht ganz zurecht mt der Synchronize Methode.</p>
<pre><code class="language-cpp">//Unit1.cpp---------------------------------------------------------------------
//Eröffnen des Threads----------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)
{
 TMyThread *FThread = new TMyThread(false);
}
</code></pre>
<pre><code class="language-cpp">//Unit2.cpp---------------------------------------------------------------------
//Eröffnungsfunktion------------------------------------------------------------

void optimierung()
{
 //Rekursiver Aufruf mehrerer Funktionen über lange Zeit
}
</code></pre>
<pre><code class="language-cpp">//Unit3.h-----------------------------------------------------------------------
class TMyThread : public TThread
{
private:
protected:
	void __fastcall Execute();
	void __fastcall GuiElements();
public:
	__fastcall TMyThread(bool CreateSuspended);
};
</code></pre>
<pre><code class="language-cpp">//Unit3.cpp---------------------------------------------------------------------
__fastcall TMyThread::TMyThread(bool CreateSuspended)
	: TThread(CreateSuspended)
{
 FreeOnTerminate = true;
}
//---------------------------------------------------------------------------
void __fastcall TMyThread::Execute()
{
 optimierung();
}
//---------------------------------------------------------------------------
void __fastcall TMyThread::GuiElements()
{

}
</code></pre>
<p>Kann ich es irgendwie umgehen, alle Funktionen aus Unit2 zwangsweise in Unit3 bzw. in die Execute-Methode zu verschieben?</p>
<p>Danke und Liebe Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/203993/hilfe-bei-thread-programmierung</link><generator>RSS for Node</generator><lastBuildDate>Wed, 19 Aug 2026 12:34:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/203993.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 28 Jan 2008 20:32:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Hilfe bei Thread Programmierung on Mon, 28 Jan 2008 20:32:51 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich möchte gerne einen zweiten Thread eröffnen, damit während Berechnungen Zwischenergebnisse ausgegeben werden können.</p>
<p>Ich bin grundsätzlich mit der Thread Programmierung vertraut. Bin aber mittlerweile in meinem Projekt ein bisschen durcheinander gekommen.</p>
<p>Ich habe eine Unit1, die nur das Formular und deren Komponenten verwendet wird.</p>
<p>In Unit2 steht der komplette Programmcode, den ich durchlaufen möchte. Es sind bis jetzt ca. 30 einzelne Funktionen, die immerwieder untereinander aufgerufen werden.</p>
<p>Jetzt habe ich ein TThread Objekt hinzugefügt. Dazu wurde eine neue Unit3 angelegt.</p>
<p>Kann ich in der ersten Unit den Thread eröffnen, in der Execute-Methode des Threads die Initialfunktion aus Unit2 aufrufen und in Unit2 irgendwie Werte übergeben, damit auf der Form Zwischenergebnisse ausgegeben werden? Ich komme nicht ganz zurecht mt der Synchronize Methode.</p>
<pre><code class="language-cpp">//Unit1.cpp---------------------------------------------------------------------
//Eröffnen des Threads----------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)
{
 TMyThread *FThread = new TMyThread(false);
}
</code></pre>
<pre><code class="language-cpp">//Unit2.cpp---------------------------------------------------------------------
//Eröffnungsfunktion------------------------------------------------------------

void optimierung()
{
 //Rekursiver Aufruf mehrerer Funktionen über lange Zeit
}
</code></pre>
<pre><code class="language-cpp">//Unit3.h-----------------------------------------------------------------------
class TMyThread : public TThread
{
private:
protected:
	void __fastcall Execute();
	void __fastcall GuiElements();
public:
	__fastcall TMyThread(bool CreateSuspended);
};
</code></pre>
<pre><code class="language-cpp">//Unit3.cpp---------------------------------------------------------------------
__fastcall TMyThread::TMyThread(bool CreateSuspended)
	: TThread(CreateSuspended)
{
 FreeOnTerminate = true;
}
//---------------------------------------------------------------------------
void __fastcall TMyThread::Execute()
{
 optimierung();
}
//---------------------------------------------------------------------------
void __fastcall TMyThread::GuiElements()
{

}
</code></pre>
<p>Kann ich es irgendwie umgehen, alle Funktionen aus Unit2 zwangsweise in Unit3 bzw. in die Execute-Methode zu verschieben?</p>
<p>Danke und Liebe Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445358</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445358</guid><dc:creator><![CDATA[Tim810]]></dc:creator><pubDate>Mon, 28 Jan 2008 20:32:51 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Thread Programmierung on Tue, 29 Jan 2008 08:50:54 GMT]]></title><description><![CDATA[<p>Hmm also nur anhand deines Textes stellt sich mir die Frage ob Du es denn schonmal getestet hast. Denn eigentlich sollte es wenn ich dich richtig verstanden habe keine Probleme bereiten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445483</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445483</guid><dc:creator><![CDATA[Slashi]]></dc:creator><pubDate>Tue, 29 Jan 2008 08:50:54 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Thread Programmierung on Tue, 29 Jan 2008 11:29:10 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>die Thread Programmierung ansich ist nicht das Problem. Der zweite Thread wird ordnungsgemäß eröffnet und die Funktionen laufen durch.</p>
<p>Was ich nicht verstehe ist, wie ich im Programmablauf in Unit2.cpp die Zwischenergebnisse ans Formular schicke. Sollte ich dafür keine Synchronize Methode ansprechen?</p>
<p>Ich habe schon versucht, eine solche Methode in der Thread Klasse zu implementieren, der zwei double Werte übergeben werden sollen. Aber da ich mich ja nicht mehr in Unit3 (Thread-Unit) befinde, ist im die Funktion unbekannt. Auch bei Inklusion der Header.</p>
<p>Mein Problem ist also die Synchronize Methode der Thread Klasse, wenn ich mich in Unit2 befinde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445550</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445550</guid><dc:creator><![CDATA[Tim810]]></dc:creator><pubDate>Tue, 29 Jan 2008 11:29:10 GMT</pubDate></item></channel></rss>