stdthread

    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

    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-