能力值:
( LV7,RANK:105 )
|
-
-
2 楼
暂时只有C++Builder开发环境,没有delphi的,但是VCL界面控件本来就应该在主线程上刷新,可以通过消息方式,做的好一些可以通过队列缓存消息做优化,以免消息太多时界面死掉。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
在线程处理完事物后,用WM_COPYDATA通知主程序,不一定要在线程里通知主程序吧。
function SendToServer(const s:string):Integer; //与管理器通讯 var cdds : TCopyDataStruct; begin Result:=0; if(IsWindow(m_CopyDataInfo.hWnd)=False)and(m_ManageCaption<>'')then begin m_CopyDataInfo.hWnd:=FindWindow(nil,PChar(m_ManageCaption)); end; if(m_CopyDataInfo.hWnd=0) then Exit; m_CopyDataInfo.Memo:=s; cdds.dwData := 0; cdds.cbData := SizeOf(m_CopyDataInfo)+1; cdds.lpData := @m_CopyDataInfo; Result:=SendMessage(m_CopyDataInfo.hWnd,WM_COPYDATA,0,LongWord(@cdds)); end;
主程序可以把自身的窗口句柄传递给新创建的程序,或用Findwindow查找主程序的窗口句柄。
|
能力值:
( LV7,RANK:105 )
|
-
-
4 楼
终于忍不住装了Delphi测试下VCL的同步问题,这么久的帖,不知道lz还能不能看到.
|
|
|