<?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]]></title><description><![CDATA[<p>Heiho,</p>
<p>Ueber die suche hier hab ich schon gesehen das es bereits ein paar beitraege gibt welche MFC + thread beinhalten, aber auch nach vielen lesen und probieren hab ich es bisher nicht hinbekommen</p>
<p>ich habe<br />
eine applikation:<br />
mainframe, diese hat ein splitter mit zwei formview klassen<br />
wie bekomm ich das in einem gui thread,<br />
ich weiss das ich CWinThread ableiten soll, aber wie hab ich bisher nicht rausgefunden<br />
kann mir jemand helfen oder gar eine kleine beispiel applikation zukommen lassen mit einen MainFrame und einen splitter mit den FormViews?<br />
Waere sehr nett {o;</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/198226/threads</link><generator>RSS for Node</generator><lastBuildDate>Wed, 08 Apr 2026 05:41:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/198226.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 19 Nov 2007 18:50:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Threads on Mon, 19 Nov 2007 18:50:54 GMT]]></title><description><![CDATA[<p>Heiho,</p>
<p>Ueber die suche hier hab ich schon gesehen das es bereits ein paar beitraege gibt welche MFC + thread beinhalten, aber auch nach vielen lesen und probieren hab ich es bisher nicht hinbekommen</p>
<p>ich habe<br />
eine applikation:<br />
mainframe, diese hat ein splitter mit zwei formview klassen<br />
wie bekomm ich das in einem gui thread,<br />
ich weiss das ich CWinThread ableiten soll, aber wie hab ich bisher nicht rausgefunden<br />
kann mir jemand helfen oder gar eine kleine beispiel applikation zukommen lassen mit einen MainFrame und einen splitter mit den FormViews?<br />
Waere sehr nett {o;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1406105</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1406105</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Mon, 19 Nov 2007 18:50:54 GMT</pubDate></item><item><title><![CDATA[Reply to Threads on Tue, 20 Nov 2007 00:44:53 GMT]]></title><description><![CDATA[<p>Üblich ist es den main Thread als GUI Thread zu verwenden, d.h. du musst *garnix* dazu machen.<br />
Das einzige was du in Threads auslagerst sind Aufgaben die länger dauern können, das werden dann Worker-Threads.<br />
Zumindest hab ich es bis jetzt immer so gemacht, funktioniert eigentlich toll.</p>
<p>GUI mit mehreren Threads ist problematisch, würde ich nicht machen (z.B. Parent-Child Relation zwischen Fenstern verschiedener Threads kann zu seltsamen Fehlern führen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1406303</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1406303</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 20 Nov 2007 00:44:53 GMT</pubDate></item><item><title><![CDATA[Reply to Threads on Tue, 20 Nov 2007 08:03:24 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Üblich ist es den main Thread als GUI Thread zu verwenden</p>
</blockquote>
<p>Hab ich mir auch gedacht, aber sobald ich es versuch schmierts direkt beim start ab<br />
ich habe eine MFC app erstellt mit SDI ohne Doc/View, ich habe:</p>
<pre><code class="language-cpp">class CTestApp : public CWinApp
</code></pre>
<p>diese ruft auf: (bei InitInstance)</p>
<pre><code class="language-cpp">CMainFrame* pFrame = new CMainFrame;
if (!pFrame)
	return FALSE;
m_pMainWnd = pFrame;
pFrame-&gt;LoadFrame(IDR_MAINFRAME, WS_OVERLAPPEDWINDOW|FWS_ADDTOTITLE, NULL, NULL);
pFrame-&gt;ShowWindow(SW_SHOW);
pFrame-&gt;UpdateWindow();
return TRUE;
</code></pre>
<p>dann dacht ich, leiteste von CWinThread statt CWinApp ab, nur dann kommt er nicht einmal zu den InitInstance.<br />
Declare_Dyncreate und Implement_Dyncreate sind gesetzt /=</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1406340</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1406340</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Tue, 20 Nov 2007 08:03:24 GMT</pubDate></item><item><title><![CDATA[Reply to Threads on Tue, 20 Nov 2007 08:34:01 GMT]]></title><description><![CDATA[<p>Lass es lieber bei der üblichen Vererbungsbeziehung - CWinApp ist selber von CWinThread abgeleitet und stellt noch einiges an zusätzlicher Funktionalität bereit, die für die zentrale Steuerung nötig ist. In deiner WinApp-Klasse (und ihren Helfern - CMainFrame, CView etc) kannst du dich dann um alle Anzeigen kümmern.</p>
<p>(btw, SDI ohne Doc/View - wie soll das denn gehen?)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1406354</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1406354</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 20 Nov 2007 08:34:01 GMT</pubDate></item><item><title><![CDATA[Reply to Threads on Tue, 20 Nov 2007 08:41:30 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Lass es lieber bei der üblichen Vererbungsbeziehung - CWinApp ist selber von CWinThread abgeleitet und stellt noch einiges an zusätzlicher Funktionalität bereit, die für die zentrale Steuerung nötig ist. In deiner WinApp-Klasse (und ihren Helfern - CMainFrame, CView etc) kannst du dich dann um alle Anzeigen kümmern.</p>
</blockquote>
<p>das hab ich ja derzeit, nur das hilft mir nichts bezueglich meines freezings</p>
<p>in meinem programm finden 3 laengere aufgaben statt welche ueber COM statt finden .. sobald diese laufen friert die app ein, darum hab ich ja nach guithread gefragt, die COM anfragen in nem arbeitsthread auszulagern habe ich bisher noch nicht geschafft /=</p>
<p>CStoll schrieb:</p>
<blockquote>
<p>(btw, SDI ohne Doc/View - wie soll das denn gehen?)</p>
</blockquote>
<p>MFC app erstellen - single document und doc/view architektur ausschalten, dann hat man die app.cpp, frame.cpp und view.cpp<br />
die view kann man wegkloppen, und in der frame.cpp ein splitter rein wo eine ctopframeview und cbottomframeview benutzt werden<br />
die frame.cpp kann auf die beiden klassen direkt zugreifen, und die klassen selber schicken immer ne message an den frame {sind bei mit nur 2 von der top und 1 von der button klasse</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1406357</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1406357</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Tue, 20 Nov 2007 08:41:30 GMT</pubDate></item><item><title><![CDATA[Reply to Threads on Tue, 20 Nov 2007 08:48:55 GMT]]></title><description><![CDATA[<p>Mr Evil schrieb:</p>
<blockquote>
<p>in meinem programm finden 3 laengere aufgaben statt welche ueber COM statt finden .. sobald diese laufen friert die app ein, darum hab ich ja nach guithread gefragt, die COM anfragen in nem arbeitsthread auszulagern habe ich bisher noch nicht geschafft /=</p>
</blockquote>
<p>Das wäre aber die elegantere Lösung - zeig doch mal, was du versucht hast.<br />
(Wichtig: Der Worker-Thread darf nicht direkt auf dein Fenster zugreifen - aber er darf Messages an das Hauptprogramm schicken, wenn er etwas dargestellt haben will)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1406363</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1406363</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 20 Nov 2007 08:48:55 GMT</pubDate></item><item><title><![CDATA[Reply to Threads on Tue, 20 Nov 2007 09:05:36 GMT]]></title><description><![CDATA[<p>sie greifen nicht zu</p>
<p>das habe ich</p>
<pre><code class="language-cpp">class CMainFrame : public CFrameWnd
{
protected:
    LRESULT OnTest(WPARAM wParam, LPARAM lParam);
    CComClass* pCross;
    static UINT thread_entry(LPVOID lpvoid)
    {
        return static_cast&lt;CMainFrame*&gt;(lpvoid)-&gt;Test();
    }
    int Test();
};

LRESULT CMainFrame::OnTest(WPARAM wParam, LPARAM lParam)
{
    try
    {
        CWinThread *pThread = AfxBeginThread(thread_entry, this);
        ::WaitForSingleObject(pThread, 10000);
        return (pCross) ? TRUE : FALSE;
    }
    catch(...)
    {
        return FALSE;
    }
    return TRUE;
}

int CMainFrame::Test()
{
    pCross = CComClass::Connect();
    return 0;
}
</code></pre>
<p>wenn ich statt AfxBeginThread das Connect direkt in der OnTest aufrufe, dann funktioniert es,<br />
wenn ich in der Test() eine messagebox anzeigen lasse, funktioniert es,<br />
aber sobald ich dieses versuche, wird das AfxBeginThread direkt uebersprungen, also es sieht aus als wenn es nicht aufgerufen wird</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1406377</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1406377</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Tue, 20 Nov 2007 09:05:36 GMT</pubDate></item><item><title><![CDATA[Reply to Threads on Tue, 20 Nov 2007 09:18:50 GMT]]></title><description><![CDATA[<p>Hast du mal versucht, GetLastError() und vergleichbare Fehlerkennungen auszuwerten?</p>
<p>(btw, wenn du direkt auf deinen Thread wartest, bringt das keinen Vorteil gegenüber der bisherigen Vorgehensweise)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1406382</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1406382</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 20 Nov 2007 09:18:50 GMT</pubDate></item><item><title><![CDATA[Reply to Threads on Tue, 20 Nov 2007 09:24:52 GMT]]></title><description><![CDATA[<p>GetLastError liefert 0<br />
mit dem Wait hab ich nur zum test drinnen, ich denk dass ich die status abfrage per timer loesen muss<br />
sobald ich in den thread auf &quot;pCross&quot; oder dem &quot;CComClass::Connect()&quot; zugreife wirds uebersprungen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1406387</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1406387</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Tue, 20 Nov 2007 09:24:52 GMT</pubDate></item><item><title><![CDATA[Reply to Threads on Tue, 20 Nov 2007 09:38:15 GMT]]></title><description><![CDATA[<p>Ist ja klar das dir das GUI einfriert. Du bleibst ja in der OnTest hängen weil du auf den Thread wartest. Thread starten und vom Thread aus signalisieren wenn er fertig ist könnte hier helfen. Ich kenn mich zwar nicht mit dem ganzen COM-Zeugs aus aber ich muss CStoll Recht geben: SDI ohne Doc/View macht wenig Sinn auch wenn man es da einstellen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1406395</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1406395</guid><dc:creator><![CDATA[AndyDD]]></dc:creator><pubDate>Tue, 20 Nov 2007 09:38:15 GMT</pubDate></item><item><title><![CDATA[Reply to Threads on Tue, 20 Nov 2007 09:50:46 GMT]]></title><description><![CDATA[<p>AndyDD schrieb:</p>
<blockquote>
<p>Ist ja klar das dir das GUI einfriert. Du bleibst ja in der OnTest hängen weil du auf den Thread wartest.</p>
</blockquote>
<p>ne, wenn ich es mit thread mache, friert nichts ein, da das com nichtmal mehr benutzt wird, es wird schlichtweg uebersprungen</p>
<p>zb</p>
<pre><code class="language-cpp">int CMainFrame::Test()
{
    AfxMessageBox(_T(&quot;Test&quot;));        // funktioniert
    pCross = CComClass::Connect();    // wird nicht aufgerufen
    return 0;                         // funktioniert
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1406403</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1406403</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Tue, 20 Nov 2007 09:50:46 GMT</pubDate></item><item><title><![CDATA[Reply to Threads on Tue, 20 Nov 2007 09:54:33 GMT]]></title><description><![CDATA[<p>Ich kenne mich auch nicht besonders gut mit COM aus - aber womöglich stellt ja der Com::Connect()-Aufruf das Problem dar. Kannst du den Aufruf mal debuggen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1406407</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1406407</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 20 Nov 2007 09:54:33 GMT</pubDate></item><item><title><![CDATA[Reply to Threads on Tue, 20 Nov 2007 10:06:20 GMT]]></title><description><![CDATA[<p>ne, leider nicht, hab ich schon probiert, ich kommt mit dem debugger dort nichteinmal rein /=<br />
das curiose ist ja auch das ich nichtmal auf pCross zugreifen kann {hab versucht NULL zuzuweisen}<br />
wegen diese ganzen problemen hatte ich ja versucht die oberflaeche in einen separaten thread laufen zu lassen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1406414</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1406414</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Tue, 20 Nov 2007 10:06:20 GMT</pubDate></item><item><title><![CDATA[Reply to Threads on Tue, 20 Nov 2007 11:06:54 GMT]]></title><description><![CDATA[<p>Um einen neuen GUI Thread zu starten erzeugst Du einen eigene Klasse, die Du von CWinThread ableitest. Der verpasst Du DEFINE_/IMPLEMENT_DYNCREATE.</p>
<p>Dann verwendest Du die Funktion von AfxBeginThread, die den Klassen Namen übernimmt.</p>
<p>Nun einfach InitInstance überschreiben, Deine Fenster erzeugen und als letztes einfach CWinThread::Run ausführen.</p>
<p>Thats it...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1406465</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1406465</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Tue, 20 Nov 2007 11:06:54 GMT</pubDate></item><item><title><![CDATA[Reply to Threads on Tue, 20 Nov 2007 11:08:53 GMT]]></title><description><![CDATA[<blockquote>
<pre><code class="language-cpp">CWinThread *pThread = AfxBeginThread(thread_entry, this); 
        ::WaitForSingleObject(pThread, 10000);
</code></pre>
</blockquote>
<p>Das dieser Code tödlich ist, ist Dir auch klar.</p>
<p>Ohne weitere Vorkehrung ist das Threadobjekt nämlich zerstört, wenn der Thread beendet wird und WaitForSingleObject retruniert evtl. nie. (Siehe m_bAutoDelete)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1406467</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1406467</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Tue, 20 Nov 2007 11:08:53 GMT</pubDate></item><item><title><![CDATA[Reply to Threads on Tue, 20 Nov 2007 17:15:43 GMT]]></title><description><![CDATA[<p>Martin Richter schrieb:</p>
<blockquote>
<p>Um einen neuen GUI Thread zu starten erzeugst Du einen eigene Klasse, die Du von CWinThread ableitest. Der verpasst Du DEFINE_/IMPLEMENT_DYNCREATE.</p>
<p>Dann verwendest Du die Funktion von AfxBeginThread, die den Klassen Namen übernimmt.</p>
<p>Nun einfach InitInstance überschreiben, Deine Fenster erzeugen und als letztes einfach CWinThread::Run ausführen.</p>
<p>Thats it...</p>
</blockquote>
<p>Klingt einfach, so hatte ich das auch in erinnerung - mein problem ist die umsetzung</p>
<p>also<br />
- VS 05 anwerfen<br />
- neues MFC projekt mit dem namen TestApp<br />
- SDI<br />
- fertig</p>
<p>nun geh ich zu dem einstiegspunkt in der TestApp.cpp und aendere das CWnd nach CWinThread ab und die dazugehoerigen DYNCREATE usw<br />
InitInstance ist ja schon da, also schmeiss ich da nur ien paar sachen raus, und lassn compiler laufen<br />
der bemaengelt nichts<br />
start -&gt; peng, direkt am start, kommt bei InitInstance nichteinmal rein /=</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1406767</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1406767</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Tue, 20 Nov 2007 17:15:43 GMT</pubDate></item><item><title><![CDATA[Reply to Threads on Tue, 20 Nov 2007 17:25:13 GMT]]></title><description><![CDATA[<p>Wo änderst Du bitte ein CWnd in ein CWinThread?</p>
<p>Gib mit mal einen Link auf Dein Demo-Projekt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1406775</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1406775</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Tue, 20 Nov 2007 17:25:13 GMT</pubDate></item><item><title><![CDATA[Reply to Threads on Tue, 20 Nov 2007 17:30:15 GMT]]></title><description><![CDATA[<p>ich glaube ich hab etwas</p>
<p>in der InitInstance der TestApp</p>
<p>CWinThread *thread = AfxBeginThread(RUNTIME_CLASS(CMain));<br />
thread-&gt;Run();</p>
<p>//CMain ist von CWinThread abgeleitet</p>
<p>in der InitInstance von CWinThread wirt das MainFrame erstellt und angezeigt<br />
also das TestApp nicht durch den CWinThread ersetzt sondern diese klasse dazwischen geschaltet !!<br />
compiler rennt und programm laeuft</p>
<p>werds morgen ma test umsetzen in meiner anderen app<br />
wuenscht mir glueck #gg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1406780</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1406780</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Tue, 20 Nov 2007 17:30:15 GMT</pubDate></item><item><title><![CDATA[Reply to Threads on Tue, 20 Nov 2007 19:49:31 GMT]]></title><description><![CDATA[<p>ne frage dazu</p>
<p>was muss ich beachten um die app nun richtig zu beenden?<br />
In der MainFrame habe ich OnClose ueberladen fuer postwork, was muss ich nun beachten?</p>
<p>beim test nun hat es sich ergeben dass - wenn ich das programm schliesse, bleibts im hintergrund noch aktiv</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1406873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1406873</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Tue, 20 Nov 2007 19:49:31 GMT</pubDate></item><item><title><![CDATA[Reply to Threads on Tue, 20 Nov 2007 20:18:37 GMT]]></title><description><![CDATA[<p>Hier ist mal die TestApp<br />
startet normal und ich glaube auch in nem thread, aber wenn ich es beende, bleibt der task noch aktiv .. zu huelf /=<br />
<a href="http://www.simracing-factory.de/evil/TestApp.rar" rel="nofollow">Klick for download</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1406906</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1406906</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Tue, 20 Nov 2007 20:18:37 GMT</pubDate></item><item><title><![CDATA[Reply to Threads on Wed, 21 Nov 2007 02:09:49 GMT]]></title><description><![CDATA[<p>Bei COM bitte auch beachten dass du CoInitialize(Ex) aufrufen musst. Und dass es 2 verschiedene Apartment-Models gibt, nämlich Multithreaded und Singlethreaded. Und dass man Interface-Zeiger aus einem Apartment nicht in einem anderen verwenden kann, sondern diese Marshalen muss.<br />
Alles sehr unübersichtlich und etwas kompliziert, vor allem wenn es alles neu für einen ist. Leider.</p>
<p>Viel mehr als &quot;lies dir einiges zum Thema COM und Apartments durch&quot; kann ich aber auch nicht schreiben, auch nur das wichtigste zusammenzufassen würde über einige Seiten gehen (zumindest wenn man es so formulieren will dass es jmd. verstehen kann der es nicht sowieso schon weiss).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1407065</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1407065</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 21 Nov 2007 02:09:49 GMT</pubDate></item><item><title><![CDATA[Reply to Threads on Wed, 21 Nov 2007 06:04:02 GMT]]></title><description><![CDATA[<p>ok, danke<br />
nun waere es aber ersteinmal interessant wieso meine applikation nach dem beenden noch weiter laeuft, siehe eine seite zuvor ganz unten</p>
<p>ich vermute das der winthread in suspend reingeht statt zu beenden, nur AfxEndThread, WM_QUIT, SendExitCode und was es nicht alles gibt an den verschiedenen positionen bringt alles nichts<br />
das ist der aufbau</p>
<p>(CMain ist die CWinThread klasse)<br />
einstieg in der CTestApp::InitInstance -&gt; CMain::InitInstance -&gt; CMainFrame</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1407080</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1407080</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Wed, 21 Nov 2007 06:04:02 GMT</pubDate></item><item><title><![CDATA[Reply to Threads on Wed, 21 Nov 2007 07:08:27 GMT]]></title><description><![CDATA[<p>Mr Evil schrieb:</p>
<blockquote>
<p>CWinThread *thread = AfxBeginThread(RUNTIME_CLASS(CMain));<br />
thread-&gt;Run();</p>
</blockquote>
<p>Falsch falsch falsch.</p>
<p>Dadurch startest Du einen Thread, aber fürhrst eine MessagePump im alten Thread aus. Der neue hat dann keine.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1407099</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1407099</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 21 Nov 2007 07:08:27 GMT</pubDate></item><item><title><![CDATA[Reply to Threads on Wed, 21 Nov 2007 07:09:45 GMT]]></title><description><![CDATA[<p>Wenn Dein neuer Thread im Run ist. Muss er irgendwer AfxPostQuitMessage ausführen.<br />
Wenn Dein neuer Thread ein m_pMainWnd in sein CWinThread Objekt setzt, terminiert Run automatisch, wenn dieses Fenster zerstört wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1407100</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1407100</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 21 Nov 2007 07:09:45 GMT</pubDate></item><item><title><![CDATA[Reply to Threads on Wed, 21 Nov 2007 07:58:06 GMT]]></title><description><![CDATA[<p>Martin Richter schrieb:</p>
<blockquote>
<p>Mr Evil schrieb:</p>
<blockquote>
<p>CWinThread *thread = AfxBeginThread(RUNTIME_CLASS(CMain));<br />
thread-&gt;Run();</p>
</blockquote>
<p>Falsch falsch falsch.</p>
<p>Dadurch startest Du einen Thread, aber fürhrst eine MessagePump im alten Thread aus. Der neue hat dann keine.</p>
</blockquote>
<p>Hmm - und wie funktionierts dann richtig, bin nu voellig ratlos, kannst ja die TestApp anschaun, wenn ich das Thread-&gt;Run() weg lass, startet gar nichts</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1407117</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1407117</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Wed, 21 Nov 2007 07:58:06 GMT</pubDate></item><item><title><![CDATA[Reply to Threads on Wed, 21 Nov 2007 08:46:10 GMT]]></title><description><![CDATA[<p>Hats Du gelesen was ich geschrieben habe? Nein...</p>
<p>Also nochmal<br />
InitInstance überschreiben in Deiner neue Klasse überschreiben. Und dort Dein Fenster erzeugen und am Ende Run/DoModal ausführen und FALSE returnieren.</p>
<p>Aonsonsten InitInstance ausführen. Das eigene Fenster erzeugen und TRUE returnieren. Run wird dann ausgeführt.</p>
<p>Das ist doch nicht anders als in einem normalen MFC Programm.</p>
<p>Dein Thread terminiert durch zerstören des Main-Fensters...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1407143</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1407143</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 21 Nov 2007 08:46:10 GMT</pubDate></item></channel></rss>