Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.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
C++ SetThreadPriority是';即使GetThreadPriority指示它是_C++_Multithreading_Visual Studio 2013_Windows 7 - Fatal编程技术网

C++ SetThreadPriority是';即使GetThreadPriority指示它是

C++ SetThreadPriority是';即使GetThreadPriority指示它是,c++,multithreading,visual-studio-2013,windows-7,C++,Multithreading,Visual Studio 2013,Windows 7,我正在调用SetThreadPriority(m_hThread,THREAD_PRIORITY_高于正常值),然后立即调用GetThreadPriority(m_hThread),以验证优先级是否已设置。根据GetThreadPriority(),SetThreadPriority()工作正常,但线程的性能没有改变 我已经创建了一个线程来通过动画GIF的帧设置动画。只要没有其他事情发生,GIF就可以完美地进行动画制作,但只要进程的主线程忙起来,GIF就会冻结,直到主线程完成其工作 我已经尝试将

我正在调用SetThreadPriority(m_hThread,THREAD_PRIORITY_高于正常值),然后立即调用GetThreadPriority(m_hThread),以验证优先级是否已设置。根据GetThreadPriority(),SetThreadPriority()工作正常,但线程的性能没有改变

我已经创建了一个线程来通过动画GIF的帧设置动画。只要没有其他事情发生,GIF就可以完美地进行动画制作,但只要进程的主线程忙起来,GIF就会冻结,直到主线程完成其工作

我已经尝试将线程提升到线程优先级最高和线程优先级时间关键,但没有任何区别。当主线程繁忙时,GIF线程仍然冻结

我已经阅读了所有我能在网上找到的关于线程优先级的内容,并且我的代码没有任何错误,所以我没有什么想法

感谢您的帮助

m_hThread = (HANDLE)_beginthreadex(NULL, 0, ThreadWrapper, this, CREATE_SUSPENDED, NULL);
DWORD dwThreadPriority1 = ::GetThreadPriority(m_hThread);
BOOL b = ::SetThreadPriority(m_hThread, THREAD_PRIORITY_ABOVE_NORMAL);
DWORD dwThreadPriority2 = ::GetThreadPriority(m_hThread);
ASSERT(THREAD_PRIORITY_ABOVE_NORMAL == dwThreadPriority2);
ResumeThread(m_hThread);

在Windows中,所有UI都应该从同一线程完成。特别是,这应该是创建主窗口的线程


违反此规则可能会产生意外的后果。

在Windows中,所有UI都应在同一线程中完成。特别是,这应该是创建主窗口的线程


违反此规则可能会产生意外后果。

这听起来更像是锁定问题,“主”线程锁定某些资源的时间超过了它需要的时间。这听起来更像是锁定问题,“主”线程锁定某些资源的时间超过了它需要的时间。类似地,任何非平凡的工作都应该尽可能移出UI线程。同样,任何非平凡的工作都应该尽可能移出UI线程。