我正在编写一个封装了一些媒体基础功能的库。我希望能够通过回调网络摄像头与系统连接/断开连接的方式通知图书馆用户。 MSDN describes how to know when a camera is disconencted,但它使用消息循环让你知道这一点。我不太了解Windows消息循环,但是我在this MSDN article中读到的内容告诉我必须有一个窗口才能有消息循环,这对于库是不可接受的。使用Windows消息循环来接收我正在写的库中的事件
所以,我有几个问题:
我可以在一个新的线程创建一个消息循环,并接收由第一链接描述的通知消息? (我希望它在一个新线程中,以便它不会阻止库用户的线程,那么库用户调用
setCameraChangeCallback(...)
,这会启动内部的消息循环。)如果是这样,我应该使用哪些创建消息循环的函数?我可以在不创建任何窗口的情况下执行此操作吗?这是一个图书馆,所以如果一个图书馆用户名为
setCameraChangeCallback(...)
并且突然出现一个窗口,那将会非常奇怪。再次,对如何做到这一点的解释(函数名称,使用的特定参数等)非常受欢迎。我的库可以在Windows应用程序中没有问题的情况下使用吗?这意味着使用我的库的Windows应用程序可能已经创建了一个窗口,并且它自己的消息循环正在运行。我的消息循环在单独的线程中运行会干扰库用户的消息循环吗?如果是这样,如何避免这种情况?
是否有什么阻止我创建两个或多个带有消息循环的线程,每个线程都被注册以获取相机更改事件的通知?