<?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[WaitForMultipleObjects]]></title><description><![CDATA[<p>hallo leute</p>
<p>kleines problem. bekomme immer unguultigen handle als fehlermeldung:</p>
<p>wallte WaitForMultipleObjects mit events in verbindung mit nem thread testen.</p>
<p>folgender aufbau:</p>
<pre><code class="language-cpp">static HANDLE events[3]; /* global, musste ich static nehmen, weil der compiler sonst meckerte, das er die variable doppelt definiert haette. k.a. warum */

/*dann im ctor meines forms(bcb)/*
   events[0] = CreateEvent(0, false, false, &quot;EVENT1&quot;);
   if(events[0] == 0)
      Memo1-&gt;Lines-&gt;Add(&quot;ERROR&quot;);
   events[1] = CreateEvent(0, false, false, &quot;EVENT2&quot;);
   if(events[1] == 0)
      Memo1-&gt;Lines-&gt;Add(&quot;ERROR&quot;);
   events[2] = CreateEvent(0, false, false, &quot;EVENT3&quot;);
   if(events[2] == 0)
      Memo1-&gt;Lines-&gt;Add(&quot;ERROR&quot;);

/* drei Button-events zum feuern meiner erzeugten events */
void __fastcall TForm1::Button3Click(TObject *Sender)
{
   SetEvent(&amp;events[0]);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
   SetEvent(&amp;events[1]);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
   SetEvent(&amp;events[2]);
}

/* nun der threadteil */
void __fastcall EventThread::Execute()
{
   Form1-&gt;Memo1-&gt;Lines-&gt;Add(&quot;Thread is running...&quot;);
   bool stop = false;

   while(!stop)
   {
      result = WaitForMultipleObjects(1,&amp;events[3],false,INFINITE); (1)
      Form1-&gt;Memo1-&gt;Lines-&gt;Add(result);
      if(result == 0xFFFFFFFF)
      {
         DWORD error = GetLastError();
         Form1-&gt;Memo1-&gt;Lines-&gt;Add(error);
         stop = true;

      }
         if(result == 0)
            Form1-&gt;Memo1-&gt;Lines-&gt;Add(&quot;Event1 was Fired&quot;);
      else if(result == 1)
         Form1-&gt;Memo1-&gt;Lines-&gt;Add(&quot;Event2 was Fired&quot;);
      ResetEvent(events[result]);
   }

   Form1-&gt;Memo1-&gt;Lines-&gt;Add(&quot;Thread beendet&quot;);
}
</code></pre>
<p>in zeile(1) meckert er dann immer das das ein ungueltiger handle sei.<br />
sieht da jemand den fehler ?</p>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/113242/waitformultipleobjects</link><generator>RSS for Node</generator><lastBuildDate>Wed, 01 Jul 2026 16:13:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/113242.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 21 Jun 2005 07:48:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to WaitForMultipleObjects on Tue, 21 Jun 2005 07:48:34 GMT]]></title><description><![CDATA[<p>hallo leute</p>
<p>kleines problem. bekomme immer unguultigen handle als fehlermeldung:</p>
<p>wallte WaitForMultipleObjects mit events in verbindung mit nem thread testen.</p>
<p>folgender aufbau:</p>
<pre><code class="language-cpp">static HANDLE events[3]; /* global, musste ich static nehmen, weil der compiler sonst meckerte, das er die variable doppelt definiert haette. k.a. warum */

/*dann im ctor meines forms(bcb)/*
   events[0] = CreateEvent(0, false, false, &quot;EVENT1&quot;);
   if(events[0] == 0)
      Memo1-&gt;Lines-&gt;Add(&quot;ERROR&quot;);
   events[1] = CreateEvent(0, false, false, &quot;EVENT2&quot;);
   if(events[1] == 0)
      Memo1-&gt;Lines-&gt;Add(&quot;ERROR&quot;);
   events[2] = CreateEvent(0, false, false, &quot;EVENT3&quot;);
   if(events[2] == 0)
      Memo1-&gt;Lines-&gt;Add(&quot;ERROR&quot;);

/* drei Button-events zum feuern meiner erzeugten events */
void __fastcall TForm1::Button3Click(TObject *Sender)
{
   SetEvent(&amp;events[0]);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
   SetEvent(&amp;events[1]);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
   SetEvent(&amp;events[2]);
}

/* nun der threadteil */
void __fastcall EventThread::Execute()
{
   Form1-&gt;Memo1-&gt;Lines-&gt;Add(&quot;Thread is running...&quot;);
   bool stop = false;

   while(!stop)
   {
      result = WaitForMultipleObjects(1,&amp;events[3],false,INFINITE); (1)
      Form1-&gt;Memo1-&gt;Lines-&gt;Add(result);
      if(result == 0xFFFFFFFF)
      {
         DWORD error = GetLastError();
         Form1-&gt;Memo1-&gt;Lines-&gt;Add(error);
         stop = true;

      }
         if(result == 0)
            Form1-&gt;Memo1-&gt;Lines-&gt;Add(&quot;Event1 was Fired&quot;);
      else if(result == 1)
         Form1-&gt;Memo1-&gt;Lines-&gt;Add(&quot;Event2 was Fired&quot;);
      ResetEvent(events[result]);
   }

   Form1-&gt;Memo1-&gt;Lines-&gt;Add(&quot;Thread beendet&quot;);
}
</code></pre>
<p>in zeile(1) meckert er dann immer das das ein ungueltiger handle sei.<br />
sieht da jemand den fehler ?</p>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/post/813751</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/813751</guid><dc:creator><![CDATA[Meep Meep]]></dc:creator><pubDate>Tue, 21 Jun 2005 07:48:34 GMT</pubDate></item><item><title><![CDATA[Reply to WaitForMultipleObjects on Tue, 21 Jun 2005 07:59:54 GMT]]></title><description><![CDATA[<p>3 ist kein gültiger Index für events.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/813758</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/813758</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 21 Jun 2005 07:59:54 GMT</pubDate></item><item><title><![CDATA[Reply to WaitForMultipleObjects on Tue, 21 Jun 2005 08:07:04 GMT]]></title><description><![CDATA[<p>Mal abgesehn davon, dass es da gar keinen Indexwert braucht...?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/813762</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/813762</guid><dc:creator><![CDATA[junix]]></dc:creator><pubDate>Tue, 21 Jun 2005 08:07:04 GMT</pubDate></item><item><title><![CDATA[Reply to WaitForMultipleObjects on Tue, 21 Jun 2005 08:22:19 GMT]]></title><description><![CDATA[<p>re</p>
<p>ja,</p>
<p>zu erst hatte ich</p>
<pre><code class="language-cpp">result = WaitForMultipleObjects(3,events,false,INFINITE); (1)
result = WaitForMultipleObjects(1,&amp;events[3],false,INFINITE); (2)
</code></pre>
<p>zuerst hatte ich (1)<br />
zeile (2) kam hinzu, weil ich dann 4 events hatte. hab zum testen noch FindFirstChangeNotification dazugenommen gehabt.</p>
<p>mit zeile(1) kam aber auch immer der ungueltige HANDLE</p>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/post/813774</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/813774</guid><dc:creator><![CDATA[Meep Meep]]></dc:creator><pubDate>Tue, 21 Jun 2005 08:22:19 GMT</pubDate></item><item><title><![CDATA[Reply to WaitForMultipleObjects on Tue, 21 Jun 2005 08:25:40 GMT]]></title><description><![CDATA[<p>0 - 2</p>
]]></description><link>https://www.c-plusplus.net/forum/post/813780</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/813780</guid><dc:creator><![CDATA[4.]]></dc:creator><pubDate>Tue, 21 Jun 2005 08:25:40 GMT</pubDate></item><item><title><![CDATA[Reply to WaitForMultipleObjects on Tue, 21 Jun 2005 08:34:07 GMT]]></title><description><![CDATA[<ol start="4">
<li>schrieb:</li>
</ol>
<blockquote>
<p>0 - 2</p>
</blockquote>
<p>ein fussballergebnis ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/813786</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/813786</guid><dc:creator><![CDATA[Meep Meep]]></dc:creator><pubDate>Tue, 21 Jun 2005 08:34:07 GMT</pubDate></item><item><title><![CDATA[Reply to WaitForMultipleObjects on Tue, 21 Jun 2005 08:45:44 GMT]]></title><description><![CDATA[<p>Meep Meep schrieb:</p>
<blockquote>
<ol start="4">
<li>schrieb:</li>
</ol>
<blockquote>
<p>0 - 2</p>
</blockquote>
<p>ein fussballergebnis ?</p>
</blockquote>
<p>Nein, der erlaubte Index für events. Du hast nur 3, events[3] wäre der vierte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/813804</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/813804</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 21 Jun 2005 08:45:44 GMT</pubDate></item><item><title><![CDATA[Reply to WaitForMultipleObjects on Tue, 21 Jun 2005 08:54:57 GMT]]></title><description><![CDATA[<p>jetzt hab ich auch nur noch</p>
<pre><code class="language-cpp">result = WaitForMultipleObjects(3,events,false,INFINITE);
</code></pre>
<p>im code stehen. meine abfrage jetzt laeuft ueber ne switch-case anweisung.<br />
case 1: bla bla<br />
case 2: bla bla<br />
case 3: bla bla<br />
default: error_meldung</p>
<p>kommt immer die errormeldung wegen des HANDLES</p>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/post/813816</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/813816</guid><dc:creator><![CDATA[Meep Meep]]></dc:creator><pubDate>Tue, 21 Jun 2005 08:54:57 GMT</pubDate></item><item><title><![CDATA[Reply to WaitForMultipleObjects on Tue, 21 Jun 2005 08:55:57 GMT]]></title><description><![CDATA[<p>*lol*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/813818</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/813818</guid><dc:creator><![CDATA[arraykenner]]></dc:creator><pubDate>Tue, 21 Jun 2005 08:55:57 GMT</pubDate></item></channel></rss>