Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SFML在多线程处理中失败 我对SFML和C++有新的见解。我有一个项目,使用SFML库来绘制图形,但是当我在程序中添加一个附加的线程时,它就无法在线程中执行代码。这是我的密码:(请帮帮我!) #包括 #包括 #包括 #包括 #包括 #包括 使用名称空间std; inth(sf::RenderWindow*win){ //做点什么 赢->关(); 这个线程::sleep_for(chrono::毫秒(10)); 返回0; } int main(){ sf::RenderWindow(sf::VideoMode(800600),“我的窗口”); 螺纹t1(h和窗口); _睡眠(10000000); t1.join(); 返回0; }_C++_Visual C++_Sfml - Fatal编程技术网

SFML在多线程处理中失败 我对SFML和C++有新的见解。我有一个项目,使用SFML库来绘制图形,但是当我在程序中添加一个附加的线程时,它就无法在线程中执行代码。这是我的密码:(请帮帮我!) #包括 #包括 #包括 #包括 #包括 #包括 使用名称空间std; inth(sf::RenderWindow*win){ //做点什么 赢->关(); 这个线程::sleep_for(chrono::毫秒(10)); 返回0; } int main(){ sf::RenderWindow(sf::VideoMode(800600),“我的窗口”); 螺纹t1(h和窗口); _睡眠(10000000); t1.join(); 返回0; }

SFML在多线程处理中失败 我对SFML和C++有新的见解。我有一个项目,使用SFML库来绘制图形,但是当我在程序中添加一个附加的线程时,它就无法在线程中执行代码。这是我的密码:(请帮帮我!) #包括 #包括 #包括 #包括 #包括 #包括 使用名称空间std; inth(sf::RenderWindow*win){ //做点什么 赢->关(); 这个线程::sleep_for(chrono::毫秒(10)); 返回0; } int main(){ sf::RenderWindow(sf::VideoMode(800600),“我的窗口”); 螺纹t1(h和窗口); _睡眠(10000000); t1.join(); 返回0; },c++,visual-c++,sfml,C++,Visual C++,Sfml,SFML支持多线程绘图,您甚至不必这样做 任何能让它工作的东西。唯一要记住的是停用 在另一个线程中使用窗口之前;那是因为有一扇窗户 (更准确地说,它的OpenGL上下文)不能在多个应用程序中处于活动状态 线程同时运行 调用window.setActive(false);在main()中,在将其传递给线程之前 请记住,为了实现最大的可移植性,必须在GUI线程(主线程)中处理事件。 SFML支持多线程绘图,您甚至不必这样做 任何能让它工作的东西。唯一要记住的是停用 在另一个线程中使用窗口之前;那是因

SFML支持多线程绘图,您甚至不必这样做 任何能让它工作的东西。唯一要记住的是停用 在另一个线程中使用窗口之前;那是因为有一扇窗户 (更准确地说,它的OpenGL上下文)不能在多个应用程序中处于活动状态 线程同时运行

调用window.setActive(false);在main()中,在将其传递给线程之前

请记住,为了实现最大的可移植性,必须在GUI线程(主线程)中处理事件。

SFML支持多线程绘图,您甚至不必这样做 任何能让它工作的东西。唯一要记住的是停用 在另一个线程中使用窗口之前;那是因为有一扇窗户 (更准确地说,它的OpenGL上下文)不能在多个应用程序中处于活动状态 线程同时运行

调用window.setActive(false);在main()中,在将其传递给线程之前


请记住,您必须在GUI线程(主线程)中处理事件,以实现最大的可移植性。

当它“…无法执行代码…”时会发生什么?它什么也不做。请尝试移动
sf::RenderWindow窗口(…)
h()
。在我的实际程序中,它必须在main中,我没有选择,因为这是一个游戏,我应该在一瞬间绘制多个图形。当它“…无法执行代码…”时会发生什么?它什么都不做。尝试移动
sf::RenderWindow窗口(…)
h()
。在我的实际程序中,它必须在main中,我没有选择,因为这是一个游戏,我应该在一瞬间绘制多个图形,但这还不够。让我头疼了好几天。这还不够。让我头痛了好几天。
#include <SFML\Graphics.hpp>
#include <SFML\window.hpp>
#include <SFML\system.hpp>
#include <iostream>
#include <thread>
#include <chrono>
using namespace std;

int h(sf::RenderWindow* win){
    //do something
    win->close();
    this_thread::sleep_for(chrono::milliseconds(10));
    return 0;
}


int main(){
    sf::RenderWindow window(sf::VideoMode(800,600),"My window");
    thread t1(h,&window);
    _sleep(10000000);
    t1.join();
    return 0;
}