本帖最后由 u011919488 于 2013-09-11 14:31:57 编辑

解决方案 »

  1.   

    我试过用try cacth 抱起来可以    但这不是从根本上解决问题
      

  2.   

    CatchTelNumber 里面的方法不用线程看看呢?里面的线程是多余的.
      

  3.   

     threadTimer.Dispose();
                listerner.Stop();这两句顺序换一下看看.
      

  4.   

    这段代码的逻辑有问题,为什么要开那么多线程?
    你现在每半秒开一个线程,除了第一线程可以进入lock以外,其它线程都在lock处等待。
    第一线程将在listerner.GetContext()处等待,直到出现满足条件的http请求。
    这时候第一线程可以顺利执行完毕,第二线程进入lock,在listerner.GetContext()处等待,其它线程继续在lock处等待。
    如果这时候 listerner.Stop(),则第二线程(监听listener的线程)异常退出(由于应用程序请求)。第三线程进入lock,在调用listerner.GetContext()的时候,产生异常InvalidOperationException:请在调用此方法前调用 Start() 方法,然后第四第五线程重复这个过程,直到所有线程都异常退出。