新建一个线程,直接访问窗体界面控件会出现“线程间操作无效”,我知道可以用Invoke方法解决,但不用Invoke,生成解决方案之后,不是在VS中调试,而是直接运行可执行文件,那个异常不出现了,为什么啊?

解决方案 »

  1.   

    呵呵, 看来 MS在调戏我们哈.线程间直接访问, 存在风险. 估计debug 时会给出提示. 但是直接运行时, 就没有安全检查啦.
      

  2.   

    我就是觉得奇怪啊。并且:
    因为辅线程里有个比较耗时的循环,用Invoke 方法的话,即使用了多线程,程序还会假死,但不用Invoke 时,直接执行生成的程序(不是调试),却不会假死,也不会出现异常
      

  3.   

    不是不出现问题,而是你没有弄明白 VS 工作原理。现在看起来没有问题,那是因为 VS 生成的可执行文件维持了出问题之前的代码状态,因为一旦代码有问题,我们的可执行文件不会被改写,而是维持原先的编译状态。也就是说,我们的程序代码有问题时,系统将错误告诉了我们,而不会去重新生成新的可执行文件。