我的程序是一个类库,被另一个EXE程序调用.类库中有4个线程(A到D),在开发机上调试时4个线程均正常,但是在客户的服务器上运行时,D线程正常启动(Thread.Start())了,但是线程的实现方法(new ThreadStart())却不运行,大家给点建议.开发机环境:
XP SP2
.NET 1.1(sp1) + 2.0客户机环境:
WIN2000 + SP4
.NET 1.1(sp1)

解决方案 »

  1.   

    线程实现方法大致如下:
    public void PrizeMethod()
    {
    Common.Log("running...");
             while(true)
    {
    try
    {
    ...
    }
    catch(ThreadAbortException ex)
    {
    break;
    }
    catch(Exception ex)
    {} }
    }在客户机上不会显示running...,但是在开发机上正常.
      

  2.   

    to Knight94:
    就是在一个文本文件中写个字,这是在发现问题后调试增加的,不会是它引起的.
      

  3.   

    如果这样的话,就你给出的代码看不出什么问题当时的cpu状况呢
      

  4.   

    to Knight94:
    CPU是正常的,启动的时候3%,现在客户这边两台机器上都不可以,但是我的开发机就可以,郁闷.
      

  5.   

    你在线程入口函数中加上try-catch捕获一下,可能有细微的问题。
      

  6.   

    to Knight94:
    没有任何异常,原来就有try块.
      

  7.   

    Thread g_thPrize = new Thread(new ThreadStart(PrizeMethod));
    g_thPrize.Name = "PrizeThread";
    g_thPrize.Start();
      

  8.   

    to Knight94:
    我准备重装系统,实在不知道是咋回事了
      

  9.   

    不会是没调用thread.Start()方法吧?
      

  10.   

    重装系统没意义吧?建议多发点代码,最好是Ctrl+C,Ctrl+V,比较容易发现问题些。
      

  11.   


    g_thPrize.Start();
    之后加上
    Thread.Sleep( 10 );
    试试
      

  12.   

    to Knight94:
    我加上了Thread.Sleep(10)还是不行.另外跟超线程应该没关系,因为我的开发机也是打开超线程的.