开发者

UpdateAllViews() from within a worker thread?

I have a worker thread in a class that is owned by a ChildView. (I intend to move this to the Doc eventually.) When the worker thread completes a task I want all the views to be updated. How can I make a call to tell the Doc to issue an UpdateAllViews()? Or is there a better approach?

Thank you.


Added by OP: I am looking for a simple solution. The App is running on a single user, single CPU computer and does not need network (or Internet) access. There is nothing to cause a deadlock.

I think I would like to have the worker thread post (or send) a message to cause the views to update.

Everything I read about threading seems way more complicated than what I need - and, yes, I understand that all those precautions are necessary for applications that are running in multiprocessor, multiuser, client-server systems, etc. But none of those apply in my situation.

I am just stuck at getting the right combi开发者_如何转开发nation of getting the window handle, posting the message and responding to the message in the right functions and classes to compile and function at all.


UpdateAllViews is not thread-safe, so you need to marshal the call to the main thread. I suggest you to signal a manual-reset event to mark your thread's completion and check the event's status in a WM_TIMER handler.

suggested reading:

  • First Aid for the Thread-Impaired: Using Multiple Threads with MFC
  • More First Aid for the Thread Impaired: Cool Ways to Take Advantage of Multithreading
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜