C++ 无限线程,可能运行也可能不运行CDialog每个循环

C++ 无限线程,可能运行也可能不运行CDialog每个循环,c++,multithreading,mfc,loops,cdialog,C++,Multithreading,Mfc,Loops,Cdialog,我正在从事一个MFC项目,我需要一个单独的循环,该循环将连续运行或每隔几秒钟运行一次,每次都可能需要或可能不需要运行一个对话框来从用户那里获取一些输入。我曾考虑使用AfxBeginThread,但从我所读到的内容来看,它在连续循环中并不真正起作用。不要这样做。你不能仅仅在工作线程中删除对话框。它们只能在主线程中启动,因为它们需要消息泵才能工作 如果你想要的只是一个每隔几秒钟就会发射一次的信号,那么你想要的就是一个信号。将计时器设置为所需的计时器周期,当主线程处理所需的WM_计时器消息时,您可以弹

我正在从事一个MFC项目,我需要一个单独的循环,该循环将连续运行或每隔几秒钟运行一次,每次都可能需要或可能不需要运行一个对话框来从用户那里获取一些输入。我曾考虑使用AfxBeginThread,但从我所读到的内容来看,它在连续循环中并不真正起作用。

不要这样做。你不能仅仅在工作线程中删除对话框。它们只能在主线程中启动,因为它们需要消息泵才能工作

如果你想要的只是一个每隔几秒钟就会发射一次的信号,那么你想要的就是一个信号。将计时器设置为所需的计时器周期,当主线程处理所需的WM_计时器消息时,您可以弹出一个对话框并执行您的操作


如果希望工作线程执行某些工作(可能包括也可能不包括向用户询问信息),那么您将希望让线程向主线程发送消息,在主线程中处理该消息,方法是向用户询问数据,然后将信号与输入数据一起发送回工作线程。完成最后一位的一种方法是使用工作线程的句柄和指向函数的指针从主线程调用,该函数使用新输入的数据执行某些操作。

谢谢,计时器正是我要找的!