private void Timer1_Tick(object sender, EventArgs e)
{
    Timer1.Stop();    //循环查找WebBrowser中的html元素,
    //用多线程查找WebBrowser中的html元素会报错,原因是线程交叉    Timer1.Start();
}

解决方案 »

  1.   

    用Timer也是多线程。 多线程你做好锁就行了
      

  2.   

    Tick的callback如果很慢, 那还是会很慢的,而且会造成堆积
      

  3.   

    你的Timer是Forms.Timer还是Timers.Timer还是Threading.Timer?
    第一种是运行在UI线程上的,你先了解一下这三个Timer的区别。
      

  4.   

    Timer1_Tick目录LZ用的是Forms.Timer这种UI级的Timer
    改成Systme.Timers.Timer吧,Elapsed事件处理
      

  5.   

    用System.Timers.Timer比较方便,使用方法基本跟ui的timer没有区别.
    或者干脆用thread里的
      

  6.   

    这个和Timer的关系不大,主要是你访问UI的时间太长了,要想办法减少对UI的访问,和UI无关的代码都放到后台线程中去。