谷歌测试中的使用线程

时间:2016-01-15 09:23:19

标签: c++ multithreading gcc googletest stdthread

我想创建一些测试来检查我的应用程序中的多线程。我使用谷歌测试框架。我的以下代码未编译错误消息error: invalid use of non-static member function

TEST_F( tc, t ) {
  std::thread thread1 ( f1, p1 );
  std::thread thread2 ( f2, p2 );
  thread1.join();
  thread2.join();    
}

我使用GCC 5.2.1进行编译。

你能指点我解决它吗?

1 个答案:

答案 0 :(得分:1)

你需要告诉std :: thread f1和f2是使用std::bind的测试夹具的方法:

TEST_F( tc, t ) {
    std::thread thread1(std::bind(&tc::f1, this, p1));
    std::thread thread2(std::bind(&tc::f2, this, p2));
    thread1.join();
    thread2.join();    
}