2016-05-07 4 views
0

Я использую Visual Studio и следующие пронизывающие примеры порождают ошибки,Многопоточность Visual Studio C++

std::thread thread_1(addToCatalogVariablee(stage_completion, m_load_profiles, m_load_stable_instances, m_load_instance_round, m_load_instance_struct)); 

std::thread thread_2(printReport(m_load_stable_instances, m_file_name_in)); 

printReport и addToCatalogVariablee оба определены в отдельном файле заголовка и класса. Однако визуальные флаги студии обе линии, как,

Ошибка: не экземпляр конструктора не совпадает со списком аргументов типов аргументов: (недействительными)

+1

http://stackoverflow.com/help/mcve –

+0

было бы хорошо, если вы читаете руководство: http://en.cppreference.com/w/cpp/thread/thread/thread – AnatolyS

ответ

0

Я собираюсь принять диких угадать: Вы хотите позвонить printReport в отдельный поток, передавая в качестве аргумента две переменные-члены. Это не то, что вы делаете с образцом кода. Вы вызываете функцию в этой теме, а затем передаете результат этой функции конструктору std::thread.

Если printReport является обычной функцией, или статическая функция, то, что вам нужно, это просто:

std::thread thread_2(printReport, m_load_stable_instances, m_file_name_in); 

Если printReport не-статическая функция член этого класса, то вам нужно:

std::thread thread_2(&ThisClass::PrintReport, this, 
         m_load_stable_instances, m_file_name_in);