首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

为啥线程使用数组会变成一个空数组

2013-01-06 
为什么线程使用数组会变成一个空数组?我定义了一个全局数组 unit Unit1interfaceusesWindows, Messages,

为什么线程使用数组会变成一个空数组?
我定义了一个全局数组


 

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

  GameStatus: array of record
  sRecID : integer;  //记录ID
  sRowID : integer;  //列表行ID
  sPIDState:DWORD;
  sPortState:DWORD;
  sInetState:DWORD;
  end;
implementation

{$R *.dfm}

Function CheckGameStatus(p:Pointer): DWORD ;stdcall;
begin
   Form1.Text := IntToStr(high(GameStatus));
end;

procedure TForm1.Button1Click(Sender: TObject);
var ID :Thandle ;
begin
   CreateThread(nil, 0, @CheckGamestatus, Nil, 0, ID);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   SetLength(GameStatus,2);
   GameStatus[0].sRecID := 0;
   GameStatus[0].sPIDState := 0 ;
   GameStatus[0].sPortState := 0 ;
   GameStatus[0].sInetState := 0 ;

   GameStatus[1].sRecID := 1  ;
   GameStatus[1].sPIDState := 0 ;
   GameStatus[1].sPortState := 0 ;
   GameStatus[1].sInetState := 0 ;


end;

end.


[解决办法]
喂,我这边在线程中使用是成功的啊

热点排行