stdthread

    1熱度

    1回答

    我想用不同的設置在不同的std::threads中運行Fortran90函數,該函數使用許多模塊來存儲設置和一些常規數據。我看到的問題是,Fortran模塊就像單身對象。當我用兩個線程調用函數時,它們在同一個模塊上工作。有沒有辦法讓模塊threadprivate像openmp一樣? 例如使用OpenMP與線程專用數據的模塊如下: MODULE EXAMPLE USE OMP_LIB

    0熱度

    1回答

    我有如下所示從基類方法中產生線程時調用純虛方法實現的要求。 #include <iostream> class Foo { private: std::thread tr; public: virtual void baz() = 0; void foo() { this->tr = std::thread([=] { this-

    2熱度

    1回答

    我想在使用std::thread調用的函數中使用對抽象類(A)的引用作爲參數類型。 這似乎是不可能的,因爲編譯器試圖編譯:std::tuple<A>,甚至在我的代碼中,只有參考類型A被用作參數(從來沒有作爲值類型)。在Visual Studio的2017年 #include <cstdlib> #include <thread> class A { public: virtual

    0熱度

    2回答

    我正在嘗試使用boost單元測試來測試我的boost asio套接字偵聽器。監聽器的目的是簡單地監聽一個端口並讀取所有內容並將其保存到一個隊列中併發回一個http響應頭。 作爲第一步,我創建了一個客戶端向偵聽器發送消息並讀取來自偵聽器的響應消息。我還創建了一個線程來啓動偵聽器。主線程將發送和接收來自Listener的消息。我可以在客戶端和列表程序之間發送和接收消息。但是當我嘗試加入時,它並沒有加入

    1熱度

    1回答

    我已經對新的C++ 11右值做了相當多的研究,並通過左值繼承。 這裏是什麼,我已經找到並閱讀樣本: what-does-t-double-ampersand-mean-in-c11 how-stdthread-constructor-detects-rvalue-reference stdthread-and-rvalue-reference 我也介紹了自己的右值引用 Move_Semantics

    0熱度

    1回答

    爲什麼不讓這樣的線程在抽象基類中工作?我試圖抽象出從這個基類派生的用戶的所有多線程細節。當我明確寫出callbackSquare返回類型int時,我不明白它爲什麼說「沒有類型命名爲'type'」。 #include <iostream> #include <future> #include <vector> class ABC{ public: std::vector<std:

    -5熱度

    1回答

    C:\Users\hp\Desktop\Timer.h|77|error: no matching function for call to 'std::thread::thread(<unresolved overloaded function type>, Timer* const)'| 這是我收到的時候我嘗試建立的,我是一個遵循Udemy當然,我沒有對C++的很多知識,如果有人能幫助感

    -1熱度

    3回答

    WRT下面的代碼,我發現編譯isues,而試圖創建一個線程通過調用另一個對象中的成員函數。 th = std::thread(&AbcSFriend::S2F,this,friendObj); 是導致編譯錯誤的罪魁禍首。如果我刪除這條線我編譯罰款。 class AbcSFriend { public: void S2F(Abc* ptr) {} }; class

    0熱度

    1回答

    我有一個基類可以啓動後臺線程,並在需要時停止它。該線程調用兩個虛擬方法Open()和Close()。所以所有繼承的類都可以重新實現這個方法,但不能啓動/停止線程例程(比示例更困難)。我想遵循RAII原則,並在基類的構造函數/析構函數中啓動/停止線程。 問題是,在構造函數/析構函數中調用虛擬方法是一種不好的做法,在我的情況下不起作用。 這裏是我的問題的出手例如: #include <iostream

    0熱度

    1回答

    看看下面的示例, #include <iostream> #include <thread> class GPS { public: GPS() { this->init(); } ~GPS() {m_thread.join();} private: std::thread m_thread; void init() { m_thread = s