28. Januar 200223 j Hey ihr da! Weiss jemand von euch wo es eine schöne Erklärung zum Thema Multithreading/Threadprogrammierung gibt? Vielleicht kennt ja einer ein tutorial oder so. Ich Programmiere zur Zeit nämlich n bisschen Winsock.:confused: Und sobald das Programm die Funktion "recv()" ausführt, macht der nichts anderes mehr. Das recv() ist nämlich blockend. Aber da ich ja nebenbei mit dem Programm noch was anderes machen will, ausser zu recieven brauch ich das Multithreading. So, ich hoffe ich habe mich richtig ausgedrückt. Danke schon mal...
28. Januar 200223 j Ich habe sowas noch nicht gemacht, allerdings sollte man asynchrone Abfragen glaub nicht über normales Multithreading machen, weil die WSA-Schnittstellen schon asynchrone Funktionen anbieten. Ich hab in der MSDN was gefunden, vielleicht bringt Dir das etwas: Such mal nach WSOCK.C und beim Index nach WSAAsync.... bestimmt soll man das ganze so machen.
28. Januar 200223 j Hmm, etwas brauchbares konnte ich leider nicht finden... Aber selbst wenn ich eine Asynchrone Abfrage auf Nachrichten machen könnte, bräuchte ich trotzdem Threads, da ich ja ständig auf Nachrichten abprüfen muss --> Eine while(1)-Schleife würde dafür garantieren, dass gesendete Nachrichten sofort gelesen werden --> Aber solange ich in der while-Schleife bin, kann ich nichts anderes machen--> Der selbe Effekt, wie bei recv() Tja, am besten waere ein Handle, wie z.B. "onGetMessage()"! Aber das gibts nur in VB und da ich gegen VB eine gewisse Abneigung habe, muss dass mit diesen Threads endlich funzen. Trotzdem danke, cu
30. Januar 200223 j Hi sandmann, probiers mal mit der Klasse CAsyncSocket. Bei der sind schon virtuelle Funktionen dabei wie z.b. OnAccept() die man selber überschreiben kann. Vielleicht hilfts dir ja noch was. ich poste später noch mal ein paar linkz dazu aber jetzt muss ich weg -> MITTAGSPAUSE ! bis denne servas jj
30. Januar 200223 j also nochmal die links zu CAsyncSocket: http://www.rad.com/networks/1999/sockets/Sock&MFC.htm#CAsyncSocket http://ourworld.compuserve.com/homepages/tamareg/TechHelp/CPPSockets.html#Async OnAccept www.google.de?
1. Februar 200223 j Die "normale" Threaderzeugung läuft über CreateThread() CWinThread::CreateThread BOOL CreateThread( DWORD dwCreateFlags = 0, UINT nStackSize = 0, LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL ); Oder in AFX verpackt: CWinThread* AfxBeginThread( AFX_THREADPROC pfnThreadProc, LPVOID pParam, int nPriority = THREAD_PRIORITY_NORMAL, UINT nStackSize = 0, DWORD dwCreateFlags = 0, LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL ); Mit TerminateThread() oder endthread() wird das ganze gestoppt. Es gibt auch noch Befehle um die Threads teilweise auf Eis zu legen. Zeitgesteuert läßt man das ganze über Timer-Interrupts laufen.
1. Februar 200223 j hallo! evtl. hier: http://freenet.meome.de/app/fn/artcont_portal_news_article.jsp/69118.html grüsse
3. Februar 200223 j Im Codeguru steht gerade eine interessante Thread-Klasse selbstgemacht: http://www.codeguru.com/system/OOThreadWrapper.html
4. Februar 200223 j @ all Danke für die vielen Links und Vorschläge! Jetzt funktioniert mein Prog auch endlich. Wenn man sich Beispielprogramme anschaut, kriegt man halt doch am meisten mit... Habe zuerst mit _beginThread() gearbeitet, doch dann kann man keine MFC-Methoden mehr verwenden. Mit AfxBeginThread() hats dann aber geklappt. @ root@localhost Ich hab das mal probiert mit dem CAsyncSock, aber das hat irgendwie nicht hingehaun... Das Wäre aber schon genial wenn man OnReceive(), OnConnect(), etc verwenden kann. Naja, das schau ich mir später nochmal an, wenn ich mehr Zeit habe. Ich bräucht halt ein Laptop in der BS, dann hätt ich genug Zeit für solche Sachen... cu
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.