你的猜测不成立,你猜测销毁了,那怎么还可能返回有值的object.

解决方案 »

  1.   

    解决UI线程(俗称主线程) 假死现象(因为耗时操作block了UI界面的显示),
    .NET 4.0以上
    可以这样做private async void button1_Click(object sender, EventArgs e)
            {
                using (WebClient client = new WebClient())
                {                
                    string text = await client.DownloadStringTaskAsync("http://www.baidu.com");
                    this.textBox1.Text = text;//UI线程的textBox1 会在text 赋值完成时得到更新
                }
            }
      

  2.   


    用委托存到主线程From类里的一个变量里。
      

  3.   


    因为是线程方法结束前调用的委托
    这样:  Invoke(lcd, tempIE);    //线程方法的最后一句所以我猜是这句完成后线程结束了,然后把线程内的资源都销毁了?? 然后委托返回的只是一个对象引用?所以也没留下实例?
      

  4.   

    没必要这样做。直接分析HTTP协议。模拟浏览器提交。看我刚写的文章
    http://bbs.csdn.net/topics/390832086
    需要点击什么按钮就捕捉哪个按钮的协议。直接模拟浏览器提交即可。
      

  5.   


    这太累了,我要控制的不是一两个页面,而是整个在线系统流程,涉及的页面数量和复杂的都很高,我用的是 Watin,用起来方便,速度也够
      

  6.   

    我研究出来了,你们讲的都不对。最后返回参数对象的时候必须要借助主线程界面上的控件比如:text1.Invoke(lcd, tempIE);     必须要这样,哪怕不更新界面否则返回的参数对象有问题,不等于null,但无法使用。
      

  7.   

    是不是只有 Thread 创建的线程才能设置 ApartmentState.STA ??
      

  8.   

    async 和  await的出现就是为了解决夸线程调用问题的,不是一定要invoke的问题  本质就是跨线程问题