none
关于控件的线程 RRS feed

  • 问题

  • 在1个Form中,假定2个button的click都调用同一个较大的Sub Test()(无同步处理),如果btn1先触发test(),test还未运行完,btn2又触发了test,此时会发生什么?
    1.系统创建一个新的线程运行test
    2.不响应btn2的click事件
    3.异常
    我想知道,这种情况我是否需要对test进行同步,还有就是一个Form上的所有控件是否都在主线程

    2010年1月14日 6:25

答案

  • 你好!
         一般控件都是创建在主线程上的,除非你自己写代码在其他线程创建!
         你上面说的情况会导致界面没有响应,不能响应btn2的click事件
    周雪峰
    • 已标记为答案 2010年1月14日 7:35
    2010年1月14日 7:29
    版主

全部回复

  • 你好!
         一般控件都是创建在主线程上的,除非你自己写代码在其他线程创建!
         你上面说的情况会导致界面没有响应,不能响应btn2的click事件
    周雪峰
    • 已标记为答案 2010年1月14日 7:35
    2010年1月14日 7:29
    版主
  • 您好!
    我测试了一下,2个button的click确实在一个线程,既然都是一个线程,我就不用同步test了,谢谢
    2010年1月14日 7:34
  • 不客气啊!
    周雪峰
    2010年1月14日 7:37
    版主