Ich versuche derzeit boost :: asio für einige einfache TCP-Vernetzung zum ersten Mal zu verwenden, und ich Ich bin schon auf etwas gestoßen, mit dem ich nicht wirklich klar bin. Soweit ich weiß, ist die Methode io_service.run() im Grunde genommen eine Schleife, die so lange läuft, bis nichts mehr zu tun ist, was bedeutet, dass sie so lange läuft, bis ich mein kleines Serverobjekt loslasse. Da ich bereits eine Art von Mainloop eingerichtet habe, möchte ich die Netzwerkschleife lieber manuell von dort aktualisieren, nur um der Einfachheit willen, und ich denke, io_service.poll() würde tun, was ich will, etwa so:Boost :: Asio: io_service.run() vs Umfrage() oder wie integriere ich boost :: asio in Mainloop
Dies scheint zu funktionieren, aber ich frage mich immer noch, ob es einen Nachteil von dieser Methode gibt, da dies nicht der übliche Weg zu sein scheint, sich mit boost :: asios io services zu befassen. Ist das ein gültiger Ansatz oder sollte ich lieber io_service.run() in einem nicht blockierenden Extra-Thread verwenden?
'io_service' wird nicht unbedingt gestoppt, nachdem' io_service :: poll' zurückgegeben wurde. Warum brauche ich 'io_service :: reset' vor dem folgenden' io_service :: run' oder 'io_service: poll'? – updogliu