<?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[Thread wird nur einmal ausgeführt]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein Thread Object das mit Resume nur einmal ausgeführt wird.</p>
<p>Hier mein Hauptprogramm:</p>
<pre><code class="language-cpp">__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
	x = new test(true); // Thread Object erzeugen
     count = 0;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
	Edit1-&gt;Text = &quot;&quot;;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
	Edit2-&gt;Text = count;      //Counter erhöhen und ausgeben zum testen
     count++;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    x-&gt;Resume();  			//Thread ausführen
}
//---------------------------------------------------------------------------
</code></pre>
<p>Nach betätigen von Button1 wird der Thread ausgeführt.<br />
Nach erneutem betätigen von Button1 wird der Thread nicht mehr ausgeführt.<br />
Hier die Thread Klasse:</p>
<pre><code class="language-cpp">__fastcall test::test(bool CreateSuspended)
	: TThread(CreateSuspended)
{
	  Priority = tpLowest;
}
//---------------------------------------------------------------------------
void __fastcall test::Execute()
{
	Form1-&gt;Edit1-&gt;Text = &quot;Thread Running&quot;;
	for(unsigned long x = 0; x&lt;=800000000; x++){}; //Nur zum testen eine Verzögerung
	Synchronize(DisplayIt);
}
//---------------------------------------------------------------------------
void __fastcall test::DisplayIt()
{
	Form1-&gt;Edit1-&gt;Text = &quot;Thread Ready&quot;;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/100361/thread-wird-nur-einmal-ausgeführt</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Jul 2026 14:44:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/100361.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 06 Feb 2005 15:22:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Thread wird nur einmal ausgeführt on Sun, 06 Feb 2005 15:22:37 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein Thread Object das mit Resume nur einmal ausgeführt wird.</p>
<p>Hier mein Hauptprogramm:</p>
<pre><code class="language-cpp">__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
	x = new test(true); // Thread Object erzeugen
     count = 0;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
	Edit1-&gt;Text = &quot;&quot;;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
	Edit2-&gt;Text = count;      //Counter erhöhen und ausgeben zum testen
     count++;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    x-&gt;Resume();  			//Thread ausführen
}
//---------------------------------------------------------------------------
</code></pre>
<p>Nach betätigen von Button1 wird der Thread ausgeführt.<br />
Nach erneutem betätigen von Button1 wird der Thread nicht mehr ausgeführt.<br />
Hier die Thread Klasse:</p>
<pre><code class="language-cpp">__fastcall test::test(bool CreateSuspended)
	: TThread(CreateSuspended)
{
	  Priority = tpLowest;
}
//---------------------------------------------------------------------------
void __fastcall test::Execute()
{
	Form1-&gt;Edit1-&gt;Text = &quot;Thread Running&quot;;
	for(unsigned long x = 0; x&lt;=800000000; x++){}; //Nur zum testen eine Verzögerung
	Synchronize(DisplayIt);
}
//---------------------------------------------------------------------------
void __fastcall test::DisplayIt()
{
	Form1-&gt;Edit1-&gt;Text = &quot;Thread Ready&quot;;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/715988</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/715988</guid><dc:creator><![CDATA[hermes]]></dc:creator><pubDate>Sun, 06 Feb 2005 15:22:37 GMT</pubDate></item><item><title><![CDATA[Reply to Thread wird nur einmal ausgeführt on Sun, 06 Feb 2005 15:36:40 GMT]]></title><description><![CDATA[<p>So soll's auch sein. Wenn er fertig ist, dann ist es vorbei. Dann müsstest du einen neuen Thread erzeugen, um die Funktion erneut durchlaufen zu lassen. Oder du verwendest eine Schleife und irgendein Synchronisationsobjekt, sieht aus, als ob du das machen wolltest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/715997</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/715997</guid><dc:creator><![CDATA[Ringding]]></dc:creator><pubDate>Sun, 06 Feb 2005 15:36:40 GMT</pubDate></item><item><title><![CDATA[Reply to Thread wird nur einmal ausgeführt on Sun, 06 Feb 2005 16:00:57 GMT]]></title><description><![CDATA[<p>Besteht dann das Thread Object x ohne delete x nicht mehr und muss ich<br />
jedesmal ein neues Object erzeugen.</p>
<pre><code class="language-cpp">void __fastcall TForm1::Button1Click(TObject *Sender)
{
    x = new test(true); // Thread Object erzeugen
    x-&gt;Resume();              //Thread ausführen
}
</code></pre>
<p>Oder wie ist das zu verstehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/716021</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/716021</guid><dc:creator><![CDATA[hermes]]></dc:creator><pubDate>Sun, 06 Feb 2005 16:00:57 GMT</pubDate></item><item><title><![CDATA[Reply to Thread wird nur einmal ausgeführt on Sun, 06 Feb 2005 16:50:38 GMT]]></title><description><![CDATA[<p>Das hängt von FreeOnTerminate ab.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/716058</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/716058</guid><dc:creator><![CDATA[Ringding]]></dc:creator><pubDate>Sun, 06 Feb 2005 16:50:38 GMT</pubDate></item><item><title><![CDATA[Reply to Thread wird nur einmal ausgeführt on Sun, 06 Feb 2005 18:04:19 GMT]]></title><description><![CDATA[<p>Ringding schrieb:</p>
<blockquote>
<p>Das hängt von FreeOnTerminate ab.</p>
</blockquote>
<p>???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/716104</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/716104</guid><dc:creator><![CDATA[hermes]]></dc:creator><pubDate>Sun, 06 Feb 2005 18:04:19 GMT</pubDate></item><item><title><![CDATA[Reply to Thread wird nur einmal ausgeführt on Sun, 06 Feb 2005 18:19:44 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>schaffst du es nicht einmal, die BCB-Hilfe nach einem Wort zu durchsuchen?<br />
<strong>TThread-&gt;FreeOnTerminate</strong></p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/716119</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/716119</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sun, 06 Feb 2005 18:19:44 GMT</pubDate></item><item><title><![CDATA[Reply to Thread wird nur einmal ausgeführt on Sun, 06 Feb 2005 20:50:54 GMT]]></title><description><![CDATA[<p>Schuldigung wenn ich in einem Forum was frage.</p>
<p>Habe bei der Borland Hilfe unter Thread nachgeschaut die Hilfe dazu<br />
ist nicht sehr umfangreich.</p>
<p>Hätte natürlich auch mal unter TThread schauen können, bin nur manchmal etwas<br />
Lesefaul.</p>
<p>Die Eigenschaft der Klasse TThreat</p>
<p>FreeOnTerminate = true;</p>
<p>Löscht das Object.</p>
<pre><code class="language-cpp">//Hauptprogramm
test_thread* my_thread;
TForm1 *Form1;
unsigned int count;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
     count = 0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
	Edit2-&gt;Text = count;      //Counter erhöhen und ausgeben zum testen ob gleichmässig
     count++;                  //während des Threads weitergezählt wird
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
	my_thread = new test_thread(false,Edit1); // Thread Object erzeugen und starten

}
</code></pre>
<pre><code class="language-cpp">//Thread
TEdit* thread_edit;
__fastcall test_thread::test_thread(bool CreateSuspended,TEdit* edit)
	: TThread(CreateSuspended)
{
	  thread_edit = edit;
	  Priority = tpLowest;
       FreeOnTerminate = true;		//nach ausführen Thread Object zerstören
}
//---------------------------------------------------------------------------
void __fastcall test_thread::Execute()
{
	thread_edit-&gt;Text = &quot;Thread Running&quot;;			//Meldung ausgeben
	for(unsigned long x = 0; x&lt;=1000000000; x++){}; 	//Verzögerung nur zum testen
	Synchronize(DisplayIt);
}
//---------------------------------------------------------------------------
void __fastcall test_thread::DisplayIt()
{
	thread_edit-&gt;Text = &quot;Thread Ready&quot;;              //Meldung ausgeben Thread beendet
}
</code></pre>
<p>Danke für die Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/716143</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/716143</guid><dc:creator><![CDATA[hermes]]></dc:creator><pubDate>Sun, 06 Feb 2005 20:50:54 GMT</pubDate></item></channel></rss>