Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Thread-Progrmmierung

Empfohlene Antworten

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: :D

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...

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.

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()"!:D

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

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

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.

@ 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...:D

cu

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.