我有一个捕获视频的C ++程序,我希望能够创建一个命令行程序来动态更新其帧速率,图像格式等。
如何在不停止整个程序的情况下执行此操作?我需要它能够等待用户输入,但仍然可以同时捕获视频。我知道这可能涉及某种多线程,我完全是新手。一些建议/链接会很好。
比你们所有人,
答案 0 :(得分:3)
您是针对特定平台开发此内容还是需要独立于平台?
如果您正在开发Windows,您应该查看win32 API。特别是在msdn上的beginthread或_beginthreadex
我对* nix开发并不太熟悉,但我认为pthreads可以解决这个问题,可以在Windows和* nix中使用
另一种选择是使用BOOST库。 BOOST可以在Windows和* nix系统上使用。以下是BOOST Thread文档的链接。
http://www.boost.org/doc/libs/1_44_0/doc/html/thread.html
我发现BOOST Threads比WIN32 Threads更容易使用,同时你没有被绑定到特定的平台API。
答案 1 :(得分:1)
创建一个处理视频的线程,同时使用主线程等待输入。线程创建取决于平台,对于那些新手来说可能有点压倒性。您将需要一个可以通过命令行更改的变量的互斥锁,并且您需要查找如何使您的代码“线程安全”。
答案 2 :(得分:0)
在多线程之前的日子里,通过不时地定期窥视键盘缓冲区也可以解决这个问题。我提到这只是打开多线程框的替代方案,这通常比你讨价还价更多。
编辑:我现在更仔细地阅读了你想要实现的目标,有一个控制台程序用新设置更新另一个程序。我认为你需要的是程序彼此之间的通信。请查看boost::interprocess。