窗口是属于进程还是线程的?

解决方案 »

  1.   

    应该是线程吧。用Spy++看一下多线程的程序。
      

  2.   

    进程(Process)控制了各种所有权,掌握了一个程序运行时所能够使用的资源,
    比如:虚拟地址空间(memory context),比如程序使用到的句柄表(handle table),程序加载的各种模块(比如DLL)的列表(module list),以及程序使用到的堆(heap)等等。
    线程(Thread)用于程序的执行,它才真正代表了程序的执行,而且线程一定运行在进程拥有的虚拟地址空间中,使用进程的句柄表来访问各个系统对象(比如窗口,文件,各种线程同步对象,以及其他的进程和线程,管道(pipe),邮件槽(mailslot)等等),同时线程还将使用进程拥有的其他资源。同时对于每一个线程,还拥有一个独立的堆栈(stack)。
    总之,简单的一句话:进程用于给程序的运行提供一个环境,而线程则利用这个环境来完成具体的运行,windows在进行调度操作时,操作的对象也是线程而不是进程,因为执行体是线程而不是进程。