private void Work()
{
//假设函数执行时间为5秒或更长
}
main()
{
    Thread t = new Thread(new ThreadStart(Work));
    t.Start();
    //如果work 函数运行超过10秒就关闭t线程
    //请问如何操作?
}

解决方案 »

  1.   

    thread t;
    main()
    {
        timer t1 = new timer()
        t1.enable = true;
        t1.interval = 200;
        t1.elapsed +=  this.cancelThread()
        t = new Thread(new ThreadStart(Work));
        t.Start();
    }
    private void cancelThread()
    {
        if( this.thread != null )
        {
            thread.abort();
        }
    }
      

  2.   

    I just write it, did not test, sorry.
      

  3.   

    main()
    {
        Thread t = new Thread(new ThreadStart(Work));
        t.Start();
        Thread.Sleep(10000);
        t.Abort();
    }
    当然期间不能做别的事
      

  4.   

    WaitForSingleObject(同步事件对象, 5000)