<?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[Problem mit Multithreading und MFC]]></title><description><![CDATA[<p>hallo,<br />
ich habe ein programm geschrieben, das daten via winsock erhalten soll und dann eine funktion mit den erhaltenen argumenten ausführen soll.das funktioniert auch soweit. doch solang die recv()-funktion auf daten wartet, reagiert das programm nicht. deshalb wollte ich mit multithreading arbeiten, sodass in dem thread die recv()-funktion ausgeführt wird. ich kann zwar dann eine statische funktion aufrufen, aber die kann dann die nicht-statische member-funktion nicht aufrufen. kann mir jemand sagen, wie ich das dann realisieren kann?</p>
<p>danke, TSX</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/160862/problem-mit-multithreading-und-mfc</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Jul 2026 22:49:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/160862.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 30 Sep 2006 10:29:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit Multithreading und MFC on Sat, 30 Sep 2006 10:29:31 GMT]]></title><description><![CDATA[<p>hallo,<br />
ich habe ein programm geschrieben, das daten via winsock erhalten soll und dann eine funktion mit den erhaltenen argumenten ausführen soll.das funktioniert auch soweit. doch solang die recv()-funktion auf daten wartet, reagiert das programm nicht. deshalb wollte ich mit multithreading arbeiten, sodass in dem thread die recv()-funktion ausgeführt wird. ich kann zwar dann eine statische funktion aufrufen, aber die kann dann die nicht-statische member-funktion nicht aufrufen. kann mir jemand sagen, wie ich das dann realisieren kann?</p>
<p>danke, TSX</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1146924</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1146924</guid><dc:creator><![CDATA[TSX]]></dc:creator><pubDate>Sat, 30 Sep 2006 10:29:31 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Multithreading und MFC on Sat, 30 Sep 2006 11:04:53 GMT]]></title><description><![CDATA[<p>weiss nicht ob ich dich richtig verstehe, aber eine Lösung wäre folgende:</p>
<p>du speicherst dir den this Zeiger in einer statischen Variable, mit dieser kannst du dann in der static Methode über den -&gt; auf die Variablen zugreifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1146941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1146941</guid><dc:creator><![CDATA[sven01]]></dc:creator><pubDate>Sat, 30 Sep 2006 11:04:53 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Multithreading und MFC on Sat, 30 Sep 2006 12:09:38 GMT]]></title><description><![CDATA[<p>ich verstehe deine lösung nicht so ganz. könntest du mir bitte ein code-fragment geben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1146961</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1146961</guid><dc:creator><![CDATA[TSX]]></dc:creator><pubDate>Sat, 30 Sep 2006 12:09:38 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Multithreading und MFC on Sat, 30 Sep 2006 13:44:26 GMT]]></title><description><![CDATA[<p>sofern die funktion die du aufrufen möchtest, in einer Windowsklasse ist, kannst du eine usermessage an das window schicken. ansonsten solltest du dich mit threadkommunikation (semaphores usw.) beschäftigen.</p>
<p>siehe <a href="http://www.codeproject.com/threads/#Threads" rel="nofollow">http://www.codeproject.com/threads/#Threads</a></p>
<p>gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147005</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147005</guid><dc:creator><![CDATA[CTecS]]></dc:creator><pubDate>Sat, 30 Sep 2006 13:44:26 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Multithreading und MFC on Sat, 30 Sep 2006 14:09:06 GMT]]></title><description><![CDATA[<p>ich zeig mal lieber einen kleines stück vom code</p>
<pre><code>// TestDlg.h : Headerdatei
//
#pragma once
#include &quot;afxwin.h&quot;
// CTestDlg-Dialogfeld
class CTestDlg : public CDialog
{
// Konstruktion
public:
	CTestDlg(CWnd* pParent = NULL);	// Standardkonstruktor

// Dialogfelddaten
	enum { IDD = IDD_TEST_DIALOG };

	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV-Unterstützung

// Implementierung
protected:
	HICON m_hIcon;

	// Generierte Funktionen für die Meldungstabellen
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	DECLARE_MESSAGE_MAP()
public:
	...
	CWinThread* thread;
	void UseData(int i);
	static void GetData(LPVOID p);
	void StartThread();
};
</code></pre>
<pre><code>...
void CTestDlg::GetData(LPVOID p)
{
	TCHAR buf[256];
	recv(socket,buf,256,0);
	UseData(atoi(buf);
}
void CTestDlg::UseData(int i)
{
	TCHAR buf[256];
	sprintf_s(buf,256,&quot;Das Ergebnis ist %d&quot;,pow(2,i));
	MessageBox(buf);
	return true;
}
void CTestDlg::StartThread()
{
	thread=AfxBeginThread(GetData, this,THREAD_PRIORITY_NORMAL);
}
</code></pre>
<p>ich hoffe, das hilft beim verständnis</p>
<p>und vielen dank für die antworten <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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147024</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147024</guid><dc:creator><![CDATA[TSX]]></dc:creator><pubDate>Sat, 30 Sep 2006 14:09:06 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Multithreading und MFC on Sat, 30 Sep 2006 17:15:25 GMT]]></title><description><![CDATA[<p>Du kannst keine Funktion von einem anderen Thread in deinem Thread aufrufen. das wird früher oder später knallen. versuch lieber die Daten über eine Message an deinen Dialog zu senden. (PostMessage oder SendMessage und usermessage) Dort kannst du dann die Daten weiterverarbeiten oder anzeigen oder was auch immer.<br />
Des weiteren, wenn ich das richtig sehe läuft dein Thread einmal und beendet sich dann, so kannst du nur eine nachricht empfangen und schluß. im normalfall wird der Thread einmal gestartet und läuft so lange, so lange das hautprogramm nicht das beenden signalisiert.</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147147</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147147</guid><dc:creator><![CDATA[CTecS]]></dc:creator><pubDate>Sat, 30 Sep 2006 17:15:25 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Multithreading und MFC on Sun, 01 Oct 2006 08:48:44 GMT]]></title><description><![CDATA[<p>dankeschön, mit SendMessage() funktioniert das von der sache her wunderbar <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="🙂"
    /> . jedoch nicht mit resourcen IDs, die größer sind als 255. woran liegt das ? und was kann man dagegen tun ?</p>
<p>edit:<br />
so habe ich SendMessage() benutzt:</p>
<pre><code>HWND wnd = 0;
wnd = FindWindow(0, &quot;Test&quot;);
SendMessage(wnd,WM_COMMAND,MAKEWORD(255,BN_CLICKED ), 0);
</code></pre>
<p>ich gehe eigentlich davon aus, dass ich die funktion richtig benutze. aber ich poste das dennoch mal.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147291</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147291</guid><dc:creator><![CDATA[TSX]]></dc:creator><pubDate>Sun, 01 Oct 2006 08:48:44 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Multithreading und MFC on Sun, 01 Oct 2006 19:53:10 GMT]]></title><description><![CDATA[<p>hey jungs ich wollte auch schon mit thread was machen, und was CTecS erzält ist das was ich mcahen möchte ! bin aber immer Fehlgeschlafen!</p>
<p>Ich hab quasie ein DatenObjekt mir diversen dAten.. dann möchte ich 2 thread einbauen die kontinunirlich oder in bestimmten intervall daten von diesem Objekt lesen und schreiben.. und das ja dann gleichzeitig!</p>
<p>Dann die Frage an CTecS:</p>
<p>kannst du mir evtl. ein ganz einfaches minmaler code schicken mit 2 thread die jeweis in ein datenobjekt schreiben bzw. lesen. und das in 500 ms abstädnen.. wäre echt dankbar für den gefallen.. mit thread hab ich meine problem.. würde das bei dir abschaun.. Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147618</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147618</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Sun, 01 Oct 2006 19:53:10 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Multithreading und MFC on Sun, 01 Oct 2006 21:33:51 GMT]]></title><description><![CDATA[<p>mehrere Thread benutzen:</p>
<p>die basis ist ein objekt, welches den schreib und lesezyklus regelt, ZB. mit CMutex. Jeder Thead nutzt dieses Objekt zum schreiben und lesen, und jeder Tread bekommt einen Zeiger auf dieses Objekt. Der/die Thread signalisieren dem Anzeige/Verarbeitungsthread das neue Daten vorhanden sind. Dies kann über eine Message WMUSER+1 im Falle einer Windows sein oder über eine andere Benachrichtigung (Siehe WaitForSingleObject). der Thread zur Anzeige zeigt die neuen Daten an und löscht diese aus dem Zwischenbuffer.</p>
<p>Das ist nur ein Ansatz wie es gehen kann, die Ausführung würde wahrscheinlich den Rahmen spengen. Wenn das jemand als Source Kompackt darstellen kann, dann soll er es machen.</p>
<p>Denke das ihr damit weiter kommt, theaads und teadsyncronisation ist ein thema für sich.</p>
<p>gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147661</guid><dc:creator><![CDATA[CTEcS]]></dc:creator><pubDate>Sun, 01 Oct 2006 21:33:51 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Multithreading und MFC on Mon, 02 Oct 2006 00:11:42 GMT]]></title><description><![CDATA[<p>ich hab das jetzt mit der SendMessage() hinbekommen. ich musste einfach statt MAKEWORD() MAKELONG() benutzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147682</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147682</guid><dc:creator><![CDATA[TSX]]></dc:creator><pubDate>Mon, 02 Oct 2006 00:11:42 GMT</pubDate></item></channel></rss>