คำถามติดแท็ก boost-asio

6
"enable_shared_from_this" นี้มีประโยชน์อย่างไร
ฉันวิ่งข้ามenable_shared_from_thisในขณะที่อ่านตัวอย่าง Boost.Asio และหลังจากอ่านเอกสารฉันยังคงหลงทางว่าควรใช้สิ่งนี้อย่างถูกต้องอย่างไร ใครช่วยได้โปรดยกตัวอย่างและคำอธิบายว่าเมื่อใดที่ใช้คลาสนี้
349 c++  boost  boost-asio  tr1 


9
เอกสารที่ดีที่สุดสำหรับ Boost: asio?
เอกสารที่มีอยู่ในเว็บไซต์เพิ่มมี จำกัด ... จากสิ่งที่ฉันสามารถอ่านได้ฉันทามติทั่วไปก็คือมันยากที่จะหาเอกสารที่ดีเกี่ยวกับ boost :: asio library เป็นกรณีนี้จริงเหรอ? ถ้าเป็นเช่นนั้นทำไม หมายเหตุ: ฉันได้พบเว็บไซต์ Asio (ไม่เพิ่ม) แล้วและเอกสารดูเหมือนจะเหมือนกับเว็บไซต์ Boost ฉันรู้ว่า Boost :: asio เป็นของใหม่! ฉันกำลังมองหาวิธีแก้ปัญหาไม่ใช่ข้อแก้ตัว แก้ไข: มีข้อเสนอให้เพิ่มไลบรารีเครือข่ายในไลบรารีมาตรฐานสำหรับ TR2 ที่เขียนโดยผู้แต่ง Boost: asio (Christopher Kohlhoff) แม้ว่าจะไม่ใช่เอกสารสำหรับเพิ่ม: asio มันใช้เป็นฐานสำหรับข้อเสนอ TR2 เนื่องจากผู้เขียนใช้ความพยายามมากขึ้นในเอกสารนี้ฉันพบว่ามันค่อนข้างมีประโยชน์หากไม่ได้เป็นการอ้างอิงดังนั้นอย่างน้อยก็เป็นภาพรวม
141 c++  boost  boost-asio 

2
สับสนเมื่อ boost :: asio :: io_service เรียกใช้เมธอดบล็อก / ปลดบล็อก
ในฐานะที่เป็นผู้เริ่มต้น Boost ทั้งหมด Asio ฉันสับสนกับio_service::run(). ฉันจะขอบคุณถ้ามีใครสามารถอธิบายให้ฉันฟังได้เมื่อวิธีนี้บล็อก / ปลดบล็อก เอกสารระบุ: run()บล็อกฟังก์ชั่จนกว่าการทำงานทั้งหมดได้เสร็จสิ้นและมีรถขนไม่มากที่จะส่งหรือจนกว่าจะio_serviceได้รับการหยุด เธรดหลายเธรดอาจเรียกใช้run()ฟังก์ชันเพื่อตั้งค่ากลุ่มเธรดซึ่งio_serviceอาจเรียกใช้งานตัวจัดการ เธรดทั้งหมดที่รออยู่ในพูลจะเทียบเท่ากันและio_serviceอาจเลือกเธรดใดก็ได้เพื่อเรียกใช้ตัวจัดการ การออกจากrun()ฟังก์ชันปกติหมายความว่าio_serviceวัตถุหยุดทำงาน ( stopped()ฟังก์ชันจะคืนค่าจริง) โทรตามมาrun(), run_one(), poll()หรือจะกลับทันทีจนกว่าจะมีการเรียกร้องก่อนที่จะpoll_one()reset() ข้อความต่อไปนี้หมายถึงอะไร? [... ] ไม่มีตัวจัดการอีกต่อไปที่จะถูกส่ง [... ] ในขณะที่พยายามทำความเข้าใจพฤติกรรมของio_service::run()ฉันก็เจอตัวอย่างนี้(ตัวอย่างที่ 3a) ภายในนั้นฉันสังเกตว่าio_service->run()บล็อกนั้นและรอคำสั่งงาน // WorkerThread invines io_service->run() void WorkerThread(boost::shared_ptr<boost::asio::io_service> io_service); void CalculateFib(size_t); boost::shared_ptr<boost::asio::io_service> io_service( new boost::asio::io_service); boost::shared_ptr<boost::asio::io_service::work> work( new boost::asio::io_service::work(*io_service)); // ... boost::thread_group worker_threads; for(int x …
91 c++  boost-asio 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.