我在Sendfiles()之后,就abort()了现程,但是在sendfiles()有段代码panel2.Visible=true; 
status.Text="正在准备上传,请稍后.......";
可是在第一次上传的时候可以显示,在 地二次上传的时候就显示不了 

解决方案 »

  1.   

    如果我把
    Thread thread=new Thread(new ThreadStart(SendFiles));
    thread.Start();
    改成SendFiles()之后,就没事了,
    为什么呀,很着急
      

  2.   

    在上传过程中可以将按钮的Enlable = false或用一个变量控制,让他不能同时有两个线程。
    你这个程序可以不用abort(),让它自己运行完退出,我觉得你是启动多了。
      

  3.   

    我已经把按钮enable成false了,传完后在true,可是还是看不到panel和status亚
      

  4.   

    不管是abort()还是线程自己结束退出,其实线程的工作完成之后,线程的数据都还是在内存里面的,换句话说它占用的资源并没有被释放掉.通常我调用abort()的时候就有这样一种习惯:
    _thread.Abort();
    _thread.Join();
    _thread = null;
    我是通过这种方式来释放内存的.
    其实对你的程序而言不需要调用Abort(),但是为了更有效的释放资源,我想你最好是把这个线程定义成一个成员变量.每次new的时候都拿这个变量出来new.
    另外一种方法就是让这个线程不结束,建立一个传送队列,如果传送队列为空,则调用Sleep(),如果不为空则开始传送工作.