【发布时间】:2016-10-24 10:59:26
【问题描述】:
让我把你放在上下文中。我正在使用 Qt Creator 制作一个聊天框。我对 C++ 很陌生,所以这是一个挑战。我想使用std::thread 创建一个线程。这是我写的代码:
window.h
class Window: public QWidget
{
Q_OBJECT
public:
Window();
public slots:
void Config();
private:
void ListenToClients(Server server);
//member...
};
window.cpp
Window::Window(): QWidget()
{
//not important code...
do
{
//nothing
}while(config.getLaunch() == false);
Server myServer(config.getPort(), config.getBroadcast());
std::thread serverThread(&Window::ListenToClients, this, myServer);
}
void Window::Config()
{
config.exec();
}
void Window::ListenToClients(Server server)
{
for(int i = 0; i < 100; i++)
{
server.ListenNewConnections();
}
}
所以我得到这个错误:erreur: C2664: 'std::tuple<void (__cdecl Window::* )(Server),Window *,Server>::tuple(std::tuple<void (__cdecl Window::* )(Server),Window *,Server> &&)'ÿ: imossible to convert argument 1 of 'void (__cdecl Window::* )(Server)' in 'std::allocator_arg_t'
我不知道为什么以及这意味着什么。我搜索了一下,但似乎没有人遇到过像这样的错误。所以,我指望你们了。
【问题讨论】:
标签: c++ multithreading qt