dataengine.pas

来自「FIR引擎最新源码+注册」· PAS 代码 · 共 98 行

PAS
98
字号
unit DataEngine;

interface

uses
  Windows, Classes, SysUtils, Share;
type
  TDataDB = class(TThread)
    DBCriticalSection: TRTLCriticalSection;
    m_SuperUser: pTM2UserInfo;
    m_GMList: TList;
    m_UserList: TList;
  private
    procedure Run;
    procedure ProcessSuper();
    procedure ProcessGmUser();
    procedure ProcessUser();
  protected
    procedure Execute; override;
  public
    constructor Create();
    destructor Destroy; override;
  end;
implementation

uses FMain;
{ TDataDB }

constructor TDataDB.Create;
begin
  inherited Create(False);
  InitializeCriticalSection(DBCriticalSection);
  m_SuperUser := nil;
  m_GMList := TList.Create;
  m_UserList := TList.Create;
end;

destructor TDataDB.Destroy;
var
  I: Integer;
begin
  DeleteCriticalSection(DBCriticalSection);
  inherited;
end;

procedure TDataDB.Execute;
resourcestring
  sExceptionMsg = '[Exception] TDataDB::Execute';
begin
  while (not Terminated) do begin
    try
      Run;
    except
      MainOutMessage(sExceptionMsg);
    end;
    Sleep(1);
  end;
end;

procedure TDataDB.Run;
begin
  ProcessSuper();
  ProcessGmUser();
  ProcessUser();
end;

procedure TDataDB.ProcessSuper();
begin
  try
    EnterCriticalSection(DBCriticalSection);

  finally
    LeaveCriticalSection(DBCriticalSection);
  end;
end;

procedure TDataDB.ProcessGmUser();
begin
  try
    EnterCriticalSection(DBCriticalSection);

  finally
    LeaveCriticalSection(DBCriticalSection);
  end;
end;

procedure TDataDB.ProcessUser();
begin
  try
    EnterCriticalSection(DBCriticalSection);

  finally
    LeaveCriticalSection(DBCriticalSection);
  end;
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?