Multithreading 有没有办法在MFC中为视图设置线程?
我知道MFC在这里不是一个受欢迎的主题,但我还是在为平台寻找建议 我有一个多线程的MFC应用程序,它也经常使用onIdle,我们想在应用程序中添加一个绘图功能,在我们的例子中是PGL。当然,一旦它添加了,主要是因为onIdle,情节会闪烁Multithreading 有没有办法在MFC中为视图设置线程?,multithreading,view,mfc,Multithreading,View,Mfc,我知道MFC在这里不是一个受欢迎的主题,但我还是在为平台寻找建议 我有一个多线程的MFC应用程序,它也经常使用onIdle,我们想在应用程序中添加一个绘图功能,在我们的例子中是PGL。当然,一旦它添加了,主要是因为onIdle,情节会闪烁 所以我在考虑用一条线来观察情节。但不知道如何进行。我相信我需要有ui线程,因为它应该会收到一些消息。如果您能给我任何建议,我将不胜感激。请从onIdle带走所有的东西。onIdle中的Stuff='停止处理UI消息'。里面有什么 从onIdle中取出所有的东西
所以我在考虑用一条线来观察情节。但不知道如何进行。我相信我需要有ui线程,因为它应该会收到一些消息。如果您能给我任何建议,我将不胜感激。请从onIdle带走所有的东西。onIdle中的Stuff='停止处理UI消息'。里面有什么 从onIdle中取出所有的东西。onIdle中的Stuff='停止处理UI消息'。里面有什么 这里可能有两件事混在一起:
在这里,您可能会遇到一些问题:
OnIdle仅停止处理id为的消息一次OnIdle运行很长。仅当消息队列为空时才会执行OnIdle()。感谢您的回答。我无法摆脱OnIdle的东西,因为这个实时应用程序在那里做必要的事情。但我发现UpdateAllViews在OnIdle中被调用,这就是闪烁的原因。OnIdle停止处理消息只有一个id OnIdle运行很长。仅当消息队列为空时才会执行OnIdle()。感谢您的回答。我无法摆脱OnIdle的东西,因为这个实时应用程序在那里做必要的事情。但我发现UpdateAllViews是在OnIdle中调用的,这就是闪烁的原因。正如我所说,闪烁是由于应用程序类中的OnIdle例程引起的。STLL认为视图绘图的线程是不必要的?根据你在这里所说的以及对另一个答案的回应,我认为单独的线程是不必要的,并且会增加很多复杂性,而不一定解决闪烁问题。实际上,并不是UpdateAllViews导致了闪烁,而是它正在更新的视图中的绘图代码导致了闪烁。这是一个微妙的区别,但却是一个重要的区别。如果你对视图进行了双重缓冲,那么无论你更新视图的频率有多高,视图都不会闪烁。你是对的。正如我所说,闪烁是由于应用程序类中的OnIdle例程造成的。STLL认为视图绘图的线程是不必要的?根据你在这里所说的以及对另一个答案的回应,我认为单独的线程是不必要的,并且会增加很多复杂性,而不一定解决闪烁问题。实际上,并不是UpdateAllViews导致了闪烁,而是它正在更新的视图中的绘图代码导致了闪烁。这是一个微妙的区别,但却是一个重要的区别。如果你对视图进行了双重缓冲,那么无论你更新视图的频率有多高,视图都不会闪烁。你是对的。