又出错了还请各位多多赐教有图
delphi线程问题
求解决方法

解决方案 »

  1.   

    我之前用的CreateThread(nil, 0, @MyFun, nil, 0, ID); 也出这个问题,但后来我改用了线程类,问题奇迹般的消失了
      

  2.   

    我的线程方法如下:
          hthread:=CreateThread(nil,0,@Find_Admin_Temp_To_ListBox1_del,nil,0,threadid); //创建线程并立即执行
          if hthread=0 then
            messagebox(handle,'创建失败',nil,mb_ok);一会儿了用,一会儿就出错?????????、
      

  3.   

      都在你的帖子说过了! 你这样用会发生string 这样的类型错误! 解决办法是在你的单元里面使用
    initialization
      IsMultiThread :=  true至于原因你去查看DELPHI的内村管理机制吧
      

  4.   

    xhz8000 
    这行代码,我应该写在什么地方????
      

  5.   

      initialization
      IsMultiThread := True;
    end.你在你的线程单元最后一个end.上面写就可以了
      

  6.   


    鸟哥  你是两个星的人啊....鸟哥....  代码最后一段 有一个 end结尾不是 ; 是 .写那上面一段的空白地方
      

  7.   

    鸟哥 用这个
    thread:=BeginThread(0,0,ReceiveThread,@ListBox1,0,threadid);
    CreateThread 不好使 不怪你
      

  8.   

    function BeginThread(SecurityAttributes: Pointer; StackSize: LongWord;
      ThreadFunc: TThreadFunc; Parameter: Pointer; CreationFlags: LongWord;
      var ThreadId: LongWord): Integer;
    var
      P: PThreadRec;
    begin
      New(P);
      P.Func := ThreadFunc;
      P.Parameter := Parameter;
      IsMultiThread := TRUE;
      Result := CreateThread(SecurityAttributes, StackSize, @ThreadWrapper, P,
        CreationFlags, ThreadID);
    end;
    使用 BeginThread 基本也是封装了 IsMultiThread := TRUE;
     一样的
      

  9.   

    用beginthread,它的参数跟createthread完全一样,而且它还有createthread没有的异常处理功能。
    不过beginthread在内部调用createthread时使用了默认的安全设置和堆栈大小。
      

  10.   

    thread:=BeginThread(0,0,ReceiveThread,@ListBox1,0,threadid);
      function BeginThread(SecurityAttributes: Pointer; StackSize: LongWord;
      ThreadFunc: TThreadFunc; Parameter: Pointer; CreationFlags: LongWord;
      var ThreadId: LongWord): Integer;
    var
      P: PThreadRec;
    begin
      New(P);
      P.Func := ThreadFunc;
      P.Parameter := Parameter;
      IsMultiThread := TRUE;
      Result := CreateThread(SecurityAttributes, StackSize, @ThreadWrapper, P,
        CreationFlags, ThreadID);
    end;
    使用 BeginThread 基本也是封装了 IsMultiThread := TRUE; ------顶一下,,,
      

  11.   

    这个 CreateThread 真不如这个BeginThread