首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WindowsAPI中的强制前台处理

WindowsAPI中的强制前台处理
EN

Stack Overflow用户
提问于 2022-10-12 07:55:40
回答 1查看 42关注 0票数 0

我有一个执行延迟测量的可执行程序。C++伪码如下:

代码语言:javascript
复制
void main(){
  lock_priority();

  start_measurements();
  work();
  end_measurements();
}

work()创建多个线程,需要很长时间才能完成,因此理想情况下,我希望在进程运行时最小化可执行控制台,以节省屏幕空间。然而,与未最小化时相比,这将减少大约50%的输出延迟。

我希望实现lock_priority()函数,这样即使最小化,进程也不会进入PROCESS_MODE_BACKGROUND_BEGIN模式。

我到目前为止尝试过的

  1. SetPriorityClass(GetCurrentProcess(),REALTIME_PRIORITY_CLASS);--
  2. 创建了一个线程,每隔几秒钟就调用上面的函数--它确实起了作用,但是,从科学上讲,“它看起来很难看”--
  3. --我试图找到一种方法,将回调附加到SetPriorityClass()函数,以便在它完成时,如果PriorityClass除了REALTIME_PRIORITY_CLASS之外,还会重新设置它(或者至少设置PROCESS_MODE_BACKGROUND_END优先级)。这听起来是一个完美的解决方案,但我在文档中找不到这方面的任何东西。
  4. 我发现有一种方法可以让处理器更喜欢前台/后台任务(reference),但是即使可以通过代码进行配置,我仍然需要一种将这个理论函数绑定到优先级变化的方法。

任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2022-10-12 08:24:04

如何将程序输出从控制台重定向到一个文件,或者只是缓冲它,如下所示:

Redirect both cout and stdout to a string in C++ for Unit Testing

这样,您根本没有任何控制台延迟-如果这对您的测试是可以的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74038326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档