当前位置: 首页 > 知识库问答 >
问题:

当将另一个类成员函数作为线程调用时,会出现警告消息

常雅达
2023-03-14
Class ApplicationManager
{
   ....
   ....
   void method();
   void test(std::string arg1, std::string& arg2);
};

void ApplicationManager::method()
{
   std::string arg, arg2;
   ....
   ....
   std::thread(&ApplicationManager::test, this, arg, arg2);
}

共有1个答案

伊光赫
2023-03-14

你的功能

test(std::string arg1, std::string& arg2);

将引用作为第二个参数,但这里

std::thread(&ApplicationManager::test, this, arg, arg2);

它接受的值不是引用,因此必须将其修改为

std::thread(&ApplicationManager::test, this, arg, std::ref(arg2));
 类似资料:
  • 我正在尝试创建一个21点模拟器。在向玩家和庄家发牌之前,我需要洗牌。是一个无效函数,是类中的卡类型。职业存储从职业中发出的牌。在游戏开始时,我需要向玩家和庄家发两张牌。当我尝试在类访问 的成员函数时,我收到错误消息“调用不带对象参数的非静态成员函数”。调用成员函数的正确方法是什么?我真的对语法感到困惑。

  • 我正在使用一个库,该库具有以下Python类的代码(我自己编辑以找到一个最小的工作示例): 因此,似乎错误告诉我它认为是一个,而不是一个函数。为什么?

  • 这是我想在第一个窗口中导入的第二个窗口,但它将闪烁并消失。 从PyQt5导入QtCore、QtGui、QtWidgets 类Ui_主窗口_6(对象): if name=="main":导入sys 这是我的第一个窗口: 类Ui_主窗口(对象): if name=="main":导入sys 这是我正在使用的函数:

  • 我有一个异步方法,它调用另一个异步方法,但是,我希望它在单独的线程上并行运行: 事实上,这就是我正在努力做的。为什么我会收到编译器警告?task.run的语法不正确吗?

  • 目前,我使用的是firebase实时数据库。因此,我的数据更改来自另一个线程。因此,我无法控制何时更新新的数据。然后我如何知道何时调用以刷新UI? 谢谢

  • 问题内容: 有没有一种方法可以在Spider类终止之前触发它? 我可以自己终止蜘蛛,如下所示: 但是我找不到任何有关如何确定蜘蛛何时自然退出的信息。 问题答案: 看来您可以通过来注册信号监听器。 我会尝试类似的东西: 在较新版本的scrapy中已弃用。相反,您可以使用from 。