<?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[Endlosschleife in Prozess A von Prozess B beenden]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe einen Prozess A, der einen Serverdienst anbietet und dazu in einer Endlosschleife auf Socketverbindungen wartet.</p>
<p>Bisher schieße ich den Prozess A mit einem Prozess B ab, welcher</p>
<pre><code>TerminateProcess
</code></pre>
<p>mit der PID von Prozess A aufruft.</p>
<p>Allerdings habe ich das Problem, dass ich in Prozess A nach der Schleife noch einige Operationen ausführen möchte, um Prozess A sauber zu beenden. Mit der jetzigen Quick&amp;Dirty-Methode ist das nicht möglich.</p>
<p>Im Grunde suche ich also eine solche Lösung:</p>
<pre><code>// Prozess A
main() {

 while (!ProzessB-&gt;Signal) {
   serve_client_requests();
 }
 clean_up();
 do_other_important_things();

return 0;
}
</code></pre>
<p>bzw.</p>
<pre><code>// Prozess A
main() {

 while (1) {
   serve_client_requests();
   if(ProzessB-&gt;Signal)
     break;
 }
 clean_up();
 do_other_important_things();

return 0;
}
</code></pre>
<p>Kann mir da jemand 'nen Hinweis geben?</p>
<p>Gruß, Thomas</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/160991/endlosschleife-in-prozess-a-von-prozess-b-beenden</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Jul 2026 19:24:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/160991.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 02 Oct 2006 10:09:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Endlosschleife in Prozess A von Prozess B beenden on Mon, 02 Oct 2006 10:14:39 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe einen Prozess A, der einen Serverdienst anbietet und dazu in einer Endlosschleife auf Socketverbindungen wartet.</p>
<p>Bisher schieße ich den Prozess A mit einem Prozess B ab, welcher</p>
<pre><code>TerminateProcess
</code></pre>
<p>mit der PID von Prozess A aufruft.</p>
<p>Allerdings habe ich das Problem, dass ich in Prozess A nach der Schleife noch einige Operationen ausführen möchte, um Prozess A sauber zu beenden. Mit der jetzigen Quick&amp;Dirty-Methode ist das nicht möglich.</p>
<p>Im Grunde suche ich also eine solche Lösung:</p>
<pre><code>// Prozess A
main() {

 while (!ProzessB-&gt;Signal) {
   serve_client_requests();
 }
 clean_up();
 do_other_important_things();

return 0;
}
</code></pre>
<p>bzw.</p>
<pre><code>// Prozess A
main() {

 while (1) {
   serve_client_requests();
   if(ProzessB-&gt;Signal)
     break;
 }
 clean_up();
 do_other_important_things();

return 0;
}
</code></pre>
<p>Kann mir da jemand 'nen Hinweis geben?</p>
<p>Gruß, Thomas</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147834</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147834</guid><dc:creator><![CDATA[Thomas++]]></dc:creator><pubDate>Mon, 02 Oct 2006 10:14:39 GMT</pubDate></item><item><title><![CDATA[Reply to Endlosschleife in Prozess A von Prozess B beenden on Mon, 02 Oct 2006 10:14:44 GMT]]></title><description><![CDATA[<p>Wenn Du einen Dienst (&quot;Service&quot;) hast, dann solltest Du auch den Service beenden, dann wird dort der ServiceEntry mit &quot;SERVICE_CONTROL_STOP&quot; oder &quot;SERVICE_CONTROL_SHUTDOWN&quot; aufgerufen!</p>
<p>Siehe auch:<br />
<a href="http://www.codeproject.com/system/serviceskeleton.asp" rel="nofollow">http://www.codeproject.com/system/serviceskeleton.asp</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147838</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147838</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Mon, 02 Oct 2006 10:14:44 GMT</pubDate></item><item><title><![CDATA[Reply to Endlosschleife in Prozess A von Prozess B beenden on Mon, 02 Oct 2006 11:29:57 GMT]]></title><description><![CDATA[<p>Hallo Jochen,</p>
<p>mein Serviceprozess läuft in Form einer ausführbare Applikation (exe), das macht imho das Debuggen einfacher.<br />
Hab noch vergessen zu erwähnen, dass meine Plattform Windows CE ist, das NT-Tutorial scheint sich nicht so einfach übertragen zu lassen.</p>
<p>Gibts keine Möglichkeit, ein Signal in eine exe einzuschleusen oder eine Art globalen Speicher als Austauschplattform zu benutzen?<br />
Hab schon überlegt, zyklisch eine Datei von der Festplatte einzulesen, in welcher ein anderer Prozess das Signal zum Stoppen ablegt. Ist aber glaube ich nicht besonders elegant und recht resourcenhungrig. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Gruß, Thomas</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147895</guid><dc:creator><![CDATA[Thomas++]]></dc:creator><pubDate>Mon, 02 Oct 2006 11:29:57 GMT</pubDate></item><item><title><![CDATA[Reply to Endlosschleife in Prozess A von Prozess B beenden on Mon, 02 Oct 2006 20:38:31 GMT]]></title><description><![CDATA[<p>Du könntest mit PostThreadMessage deiner Anwendung eine Nachricht schicken. Allerdings wird ein Nachrichten-Queue erst erstellt, wenn du ein Fenster erstellst (gibts noch mehr Fälle?).</p>
<p>Ansonsten:<br />
Das mit Datei ist gar nicht so eine schlechte Idee.<br />
Beispiel: Wenn dein Service startet, löscht er die (evtl. vorhandene) Datei im Temp-Ordner &quot;MsgForYourServiceEigeneBezeichnung.dat&quot;. In der Schleife dann überprüft der Service in regelmäßigen Abständen, ob eine Datei mit diesem Namen im Temp-Ordner erstellt wurde. Wenn ja, beendet er sich. Zur &quot;Sicherheit&quot; könntest du noch irgendwelche Verifizierungsdaten in die Datei reinschreiben.<br />
Dürfte eigentlich nicht so ressourcen-fressend sein.</p>
<p>Edit: Wenn du eine schnell durchlaufende Schleife hast, könntest du ja auch nur alle 100 Durchläufe nach der Datei checken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1148375</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1148375</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Mon, 02 Oct 2006 20:38:31 GMT</pubDate></item></channel></rss>