gpt4 book ai didi

c++ - 错误 C3867 多线程 C++

转载 作者:行者123 更新时间:2023-11-28 00:11:32 26 4
gpt4 key购买 nike

我正在尝试创建多个线程来处理点击任务。现在 Visual Studio 2015 不显示语法错误,但是在编译时出现错误

C3867 'action::Chrome::click':非标准语法;使用“&”创建指向成员的指针

int main()
{
std::unique_ptr<action::Chrome>chrome(new action::Chrome());
const std::vector<uint_16>xLocation = { 1155, 1165, 1205, 1245, 1285 };
std::vector<uint_16>yLocation;

//Fill yLocation
//Yada yada, other code

std::thread task[6];
for(uint_8 i = 0; i < 6; i++)task[i] = std::thread((chrome->click, xLocation, yLocation[i]));
for(uint_8 i = 0; i < 6; i++)task[i].join();
}

最佳答案

您使用 &action::Chrome::click 获取指向成员函数的指针,而不是 chrome->click

如果您传递指向成员函数的指针,则第二个参数应该是函数被“调用”的对象。

你的参数列表也有问题;额外的括号意味着您只是将 yLocation[i] 传递给线程的构造函数。

使用

std::thread(&action::Chrome::click, chrome, xLocation, yLocation[i]);

关于c++ - 错误 C3867 多线程 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32839928/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com