线程中不要直接操作VCL,Synchronize()

解决方案 »

  1.   

    //在主线程内写过程,线程内用Synchronize调用,线程应该可以正常Terminate的
    form1.ListBox1.Items.Add(icmp.HostIP +'  get ');
    form1.edt_id.text:=inttostr(form1.ListBox1.Items.Count) ;
      

  2.   

    form1.ListBox1.Items.Add(icmp.HostIP +'  get ');
    form1.edt_id.text:=inttostr(form1.ListBox1.Items.Count) ;
    应写在主线程内,因为他们是线程不安全的,否则应该可以正常Terminate的
      

  3.   

    通过Synchronize访问VCL(form),可以在form里使用.free强行结束线程