一个application中有一个form,
一个class中FHandle := AllocateHWnd(WndProc);
    SetParent(FHandle, Application.Handle);
    应该是不可见的相当于form的东西吧,
一个线程疑问:
1、线程调用form的public方法(只有内存操作与界面无关的)应该不会经过form的WndProc吧?
不会产生form的message?换个说法,如果这个public方法如果是个死循环,
此时界面应该是响应的,是不是可以这样理解?2、线程对不可见的那个FHandle发消息,会不会被application获取。3、FHandle自己产生的sleep会被会让那个可见form不响应?它们都属于主线程,之间有没有影响才接触windows消息,有高人给我解释一下吗?
我新注册的,也没什么发言,没有分啊

解决方案 »

  1.   

    1、线程调用form的public方法(只有内存操作与界面无关的)应该不会经过form的WndProc吧?
    不会产生form的message?换个说法,如果这个public方法如果是个死循环,
    此时界面应该是响应的,是不是可以这样理解?对,你线程操作Form的Publice方法不会影响Form的界面刷新2、线程对不可见的那个FHandle发消息,会不会被application获取。这个要看怎么发的,用SendMessage是直接发给FHandle,不会经过Application,如果是PostMessage就会经过Application,另外你用SendMessage发消息给Handle,此时这个线程就会挂起,主线程运行,如果你这个方法处理很长时间,会挂死界面的。3、FHandle自己产生的sleep会被会让那个可见form不响应?它们都属于主线程,之间有没有影响  你在Fhandle中Sleep,就是在主线程中Sleep,这时会让界面假死,是有影响的。