<?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[Threads und gemeinsame Zugriffe]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin gerade dabei einen Systemprozess zu schreiben. Da<br />
dieser logischer Weise ohne GUI arbeitet schreibt er Fehler-<br />
meldungen oder Vorgänge die nicht korrekt ausgeführt werden<br />
konnten in ein Log. Dazu verwende ich eine TSTringList.</p>
<p>Da jedoch viele (kleine) Vorgänge gleichzeitig überwacht<br />
werden existieren mehrere Threads. Diese &quot;müssen&quot; alle in<br />
das selbe Log schreiben (zeitlicher Ablauf).</p>
<p>ThreadA-&gt; Unit1.Log &lt;- ThreadB</p>
<p>Nun stellt sich nur aus der Logik heraus die Frage was<br />
passiert wenn A-Hörnchen und B-Hörnchen beide die Nuss essen<br />
wollen?</p>
<p>Ich habe schön öfters etwas von \'WaitForSingleObject\' gehört.<br />
Bevor ich mich dort jetzt tiefer mit beschäftige, könnte ich<br />
damit das Problem welches noch ein Risiko ist ausmertzen?</p>
<p>Stelle mir das ca. so vor das er nach Aufruf der Funktion auf<br />
das &quot;Objekt&quot; wartet bis es wieder &quot;frei&quot; ist. Liege ich da richtig?<br />
Oder liege ich da im Ansatz schon falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/206647/threads-und-gemeinsame-zugriffe</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 01:43:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/206647.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 27 Feb 2008 09:16:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Threads und gemeinsame Zugriffe on Wed, 27 Feb 2008 09:16:06 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin gerade dabei einen Systemprozess zu schreiben. Da<br />
dieser logischer Weise ohne GUI arbeitet schreibt er Fehler-<br />
meldungen oder Vorgänge die nicht korrekt ausgeführt werden<br />
konnten in ein Log. Dazu verwende ich eine TSTringList.</p>
<p>Da jedoch viele (kleine) Vorgänge gleichzeitig überwacht<br />
werden existieren mehrere Threads. Diese &quot;müssen&quot; alle in<br />
das selbe Log schreiben (zeitlicher Ablauf).</p>
<p>ThreadA-&gt; Unit1.Log &lt;- ThreadB</p>
<p>Nun stellt sich nur aus der Logik heraus die Frage was<br />
passiert wenn A-Hörnchen und B-Hörnchen beide die Nuss essen<br />
wollen?</p>
<p>Ich habe schön öfters etwas von \'WaitForSingleObject\' gehört.<br />
Bevor ich mich dort jetzt tiefer mit beschäftige, könnte ich<br />
damit das Problem welches noch ein Risiko ist ausmertzen?</p>
<p>Stelle mir das ca. so vor das er nach Aufruf der Funktion auf<br />
das &quot;Objekt&quot; wartet bis es wieder &quot;frei&quot; ist. Liege ich da richtig?<br />
Oder liege ich da im Ansatz schon falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1463786</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1463786</guid><dc:creator><![CDATA[Slashi]]></dc:creator><pubDate>Wed, 27 Feb 2008 09:16:06 GMT</pubDate></item><item><title><![CDATA[Reply to Threads und gemeinsame Zugriffe on Wed, 27 Feb 2008 10:21:28 GMT]]></title><description><![CDATA[<p>Mit einer CRITICAL_SECTION lässt sich das ganz gut lösen. Allerdings muss der Thread das Log sperren, den Logeintrag schreiben und das Log wieder freigeben.</p>
<p>Schöner wäre es, das Log in einen eigenen Thread auszulagern und diesen mit Windows-Botschaften zu steuern. Dann brauchst Du dich um die Synchronisation gar nicht kümmern und die Threads können parallel zum Log arbeiten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1463831</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1463831</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 27 Feb 2008 10:21:28 GMT</pubDate></item><item><title><![CDATA[Reply to Threads und gemeinsame Zugriffe on Wed, 27 Feb 2008 10:32:34 GMT]]></title><description><![CDATA[<p>Die Idee über die Windowsmessages hatte ich bereits auch.<br />
Auf ähnlich Art habe ich auch schon öfters gearbeitet. Allerdings<br />
handelte es sich da um verschiedene Fenster und hab in dem Fenster<br />
in dem die Variabel existiert auf die Zugegriffen werden soll<br />
eine entsprechende Funktion geschrieben die das ganze Managed und die<br />
Nachrichten via SendMessage an die Form gesand. Nur wie gesagt da gab<br />
es Fenster und ich glaube nicht das ich Nachrichten an Threads via<br />
SendMessage() senden kann.</p>
<p>Ich denke wenn ich das Log in Thread-C auslagere und dort eine Funktion<br />
nutze die den 'privat' Log beschreibt von A &amp; B aufrufe habe ich die<br />
Zugriffproblematik ja erneut, oder?</p>
<p>Ansich gefällt mir die Idee mit dem &quot;Manage-Thread&quot; aber sehr gut. Klingt<br />
sauber und ordentlich <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> Nach was sollte ich mal suchen wenn ich Nachrichten<br />
an Threads senden möchte? ProcessMessage() schiesst mir da gerade vom Wortlaut<br />
her durch den Kopf!?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1463838</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1463838</guid><dc:creator><![CDATA[Slashi]]></dc:creator><pubDate>Wed, 27 Feb 2008 10:32:34 GMT</pubDate></item><item><title><![CDATA[Reply to Threads und gemeinsame Zugriffe on Wed, 27 Feb 2008 10:42:39 GMT]]></title><description><![CDATA[<p>Schau dir mal die folgende WinAPI-Funktionen an:</p>
<p>PostThreadMessage()<br />
WaitMessage()<br />
PeekMessage() oder GetMessage()</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1463843</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1463843</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 27 Feb 2008 10:42:39 GMT</pubDate></item><item><title><![CDATA[Reply to Threads und gemeinsame Zugriffe on Wed, 27 Feb 2008 10:50:28 GMT]]></title><description><![CDATA[<p>Die Namen sind ja fast selbst erklärend <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>Danke werde mir die Infos dazu Heute abend mal<br />
zu Gemüte führen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1463849</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1463849</guid><dc:creator><![CDATA[Slashi]]></dc:creator><pubDate>Wed, 27 Feb 2008 10:50:28 GMT</pubDate></item></channel></rss>