Проблема при создании потоков на с++
Требуется создать 2 потока для прорисовки данных на экран. Каждый поток будет рисовать половину изображения (по оси Х). Для вывода на экран использую библиотеку sfml.
Код:
const int WIDTH = 500, HEIGHT = 500;
void drawFractal(int start, int end, int max_iter, sf::RenderWindow& window)
{
//рисует изображение от start до end на заданном окне window
}
int main()
{
sf::RenderWindow window(sf::VideoMode(WIDTH, HEIGHT), "Test", sf::Style::Titlebar | sf::Style::Close);
while (window.isOpen())
{
//...
window.clear();
std::thread th1(drawFractal, 0, WIDTH / 2, 1000, window);
std::thread th2(drawFractal, WIDTH / 2, WIDTH, 1000, window);
//...
th1.join();
th2.join();
window.display();
}
return 0;
}
Ошибки:
std::tuple<void (__cdecl *)(int,int,int,sf::RenderWindow &),int,int,int,sf::RenderWindow>::tuple:
нет перегруженной функции, принимающей 5 аргументов
"invoke": не найдена соответствующая перегруженная функция
Сбой при специализации функции-шаблона "unknown-type std::invoke(_Callable &&,_Ty1 &&,_Types2 &&...) noexcept(<expr>)".
unknown-type std::invoke(_Callable &&) noexcept(<expr>): требует аргументов: 1, имеется: 5