求一个解决方案.
俺在写一个dll的外挂函数库,由另一个软件调用,但在函数处理很大工作量时那个程序就"死"掉了,直到函数返回,界面才能更新.用线程的话,俺的函数返回后那个软件还会有其他工作要做包括多次调用这个函数,会造成同步问题,所以俺希望俺的函数是"阻塞"模式,同时又能使主程序实时处理俺在函数中发出的消息(比如界面的更新)
俺试了:
PeekMessage/DispatchMessage
SendMessage
CallWindowProc
都不行,
俺想实在不行,就做一个独立消息队列,俺的函数被调用时只管向其加入自定义的消息,再由一个线程不断循环出队处理消息,这样可以保证消息是按顺序处理的同时不会阻塞,如处理线程来不及处理则合并或丢弃消息,但不知可不可行,工作量,可能出现的相关技术问题,请指教!
此外,实现这里的队列最好的数据结构/算法是什么.