Ich habe eine Klasse, die ich verwende, um die Erstellung und die Zerstörung von Threads zu verwalten, die für das Senden und Empfangen von CAN-Nachrichten zuständig sind. Ich weiß nicht, ob das der beste Weg ist, um das zu tun, also suche ich nach Ratschlägen, wie ich meine Threads für das Versenden von Nachrichten und das Empfangen von Nachrichten verwalten kann.Verwenden der Thread-Klasse zum Verwalten von Senden/Empfangen von Nachrichten
Grundsätzlich möchte ich spawnThread() einen Thread für das Objekt generieren, das an es übergeben wird. so, etwas zum Effekt von
spawnThread(T obj)
{
std::thread (&T::obj, this);
}
Meine Erwartung war, dass ich die Thread-Klasse verwenden würde für zwei getrennte Klassen und Sendmessage ReceiveMessage Starten und Beenden des Thread zu verwalten. Gibt es eine bessere Möglichkeit, Threading für das Senden und Empfangen von Nachrichten zu behandeln?
Sie können ein Mitglied der '' cManageThread''-Klasse hinzufügen und dieses im Konstruktor übergeben . Sie könnten dies für die Vererbung entwerfen und diesen Konstruktor als 'geschützt' definieren. –
Können Sie ein Beispiel geben, wie das erreicht werden würde? Ich habe mir den Weg der Vorlagen gelehnt, aber ich bin immer noch ziemlich neu in C++, also habe ich Schwierigkeiten damit, Syntax richtig zu machen. – Rethipher
Es ist immer noch nicht klar, was Sie eigentlich erreichen wollen. Willst du eine Klassenhierarchie haben? Möchten Sie nur eine Vorlagenschnittstelle? Was sollte 'spawnTrread()' tun? Einen neuen Thread starten Dann suchen Sie wahrscheinlich nach einer Implementierung des Thread-Pools. –