API::CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)UpdateThread,(LPVOID)ThreadPara,CREATE_SUSPENDED,&ThreadId);//开始一个计算线程

API::CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)UpdateThread,(LPVOID)ThreadPara,CREATE_SUSPENDED,&ThreadId);//开始一个计算线程
来创建线程 

 

以下是部分代码(在一个循环里创建线程):
                                            DWORD   ThreadId;
                                            while(threadcount> =threadcounts)
                                            {
                                                    Sleep(50);
                                                    Form1-> Edit3-> Text   =AnsiString(Close_Pass);
                                                    Form1-> Label3-> Caption=IntToStr(threadcount);
                                                    Application-> ProcessMessages();
                                            }
                                            int   t=ThreadPara-> emun_i;
                                            strcpy(Close_Pass,ThreadPara-> emun_str[ThreadPara-> emun_i-1]);
                                            HANDLE   m_hHandle;
                                            m_hHandle=::CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)UpdateThread,(LPVOID)ThreadPara,CREATE_SUSPENDED,&ThreadId);//开始一个计算线程
                                            SetThreadPriority(m_hHandle,THREAD_PRIORITY_HIGHEST);
                                            ResumeThread(m_hHandle);

 

//---------------------------------------------------------------------------

#ifndef   MainH
#define   MainH
//---------------------------------------------------------------------------
#include   <Classes.hpp>
#include   <Controls.hpp>
#include   <StdCtrls.hpp>
#include   <Forms.hpp>
#include   <Buttons.hpp>
//---------------------------------------------------------------------------
class   TCPUTester:public   TThread
{
private:
TSpeedButton   *FButton;
void   __fastcall   Execute(void);
public:
__fastcall   TCPUTester(TSpeedButton   *Button,
bool   CreateSuspended=true,
unsigned   long   CPUMark=1);
__fastcall   ~TCPUTester(void);
};
class   TForm1   :   public   TForm
{
__published: //   IDE-managed   Components
TSpeedButton   *SpeedButton1;
TSpeedButton   *SpeedButton2;
TSpeedButton   *SpeedButton3;
TSpeedButton   *SpeedButton4;
TSpeedButton   *SpeedButton5;
TSpeedButton   *SpeedButton6;
TSpeedButton   *SpeedButton7;
TSpeedButton   *SpeedButton8;
TSpeedButton   *SpeedButton9;
TSpeedButton   *SpeedButton10;
TSpeedButton   *SpeedButton11;
TSpeedButton   *SpeedButton12;
TSpeedButton   *SpeedButton13;
TSpeedButton   *SpeedButton14;
TSpeedButton   *SpeedButton15;
TSpeedButton   *SpeedButton16;
TSpeedButton   *SpeedButton17;
TSpeedButton   *SpeedButton18;
TSpeedButton   *SpeedButton19;
TSpeedButton   *SpeedButton20;
TSpeedButton   *SpeedButton21;
TSpeedButton   *SpeedButton22;
TSpeedButton   *SpeedButton23;
TSpeedButton   *SpeedButton24;
TSpeedButton   *SpeedButton25;
TSpeedButton   *SpeedButton26;
TSpeedButton   *SpeedButton27;
TSpeedButton   *SpeedButton28;
TSpeedButton   *SpeedButton29;
TSpeedButton   *SpeedButton30;
TSpeedButton   *SpeedButton31;
TSpeedButton   *SpeedButton32;
void   __fastcall   SpeedButton1Click(TObject   *Sender);
void   __fastcall   FormDestroy(TObject   *Sender);
private: //   User   declarations
public: //   User   declarations
__fastcall   TForm1(TComponent*   Owner);
};
//---------------------------------------------------------------------------
extern   PACKAGE   TForm1   *Form1;
//---------------------------------------------------------------------------
#endif


/************/
/*     CPP单元     */
/************/
//---------------------------------------------------------------------------

#include   <vcl.h>
#pragma   hdrstop

#include   "Main.h "
//---------------------------------------------------------------------------
#pragma   package(smart_init)
#pragma   resource   "*.dfm "
TForm1   *Form1;

void   __fastcall   TCPUTester::Execute(void)
{
while((!this-> Terminated)&&(FButton-> Down));
}

__fastcall   TCPUTester::TCPUTester(TSpeedButton   *Button,
bool   CreateSuspended,
unsigned   long   CPUMark)
:FButton(Button),   TThread(CreateSuspended)
{
this-> FreeOnTerminate=true;
SetThreadAffinityMask   ((void   *)this-> Handle,1 < <(CPUMark-1));
}
__fastcall   TCPUTester::~TCPUTester(void)
{
FButton=NULL;
}

//---------------------------------------------------------------------------
__fastcall   TForm1::TForm1(TComponent*   Owner)
:   TForm(Owner)
{
DWORD   ProcessAffinityMask;
DWORD   SystemAffinityMask;
if(!GetProcessAffinityMask( GetCurrentProcess(),
&ProcessAffinityMask,
&SystemAffinityMask))
{
Application-> Terminate();
}
for(int   i=0;i <sizeof(SystemAffinityMask)*8;i++)
{
if(SystemAffinityMask&(1 < <i))
{
dynamic_cast <TSpeedButton*> (FindComponent( "SpeedButton "+IntToStr(i+1)))-> Enabled=true;
}
}

}
//---------------------------------------------------------------------------
void   __fastcall   TForm1::SpeedButton1Click(TObject   *Sender)
{
if(!Sender-> InheritsFrom(__classid(TSpeedButton)))
{
return;
}
TSpeedButton   *Button=dynamic_cast <TSpeedButton*> (Sender);
if(NULL==Button)
      return;
if(!Button-> Down)
{
return;
}
TCPUTester   *CPUTester=new   TCPUTester(Button,true,StrToInt(Button-> Caption));
if(NULL==CPUTester)
{
return;
}
CPUTester-> Resume();
}
//---------------------------------------------------------------------------
void   __fastcall   TForm1::FormDestroy(TObject   *Sender)
{
      for(int   i=0;i <ComponentCount;i++)
      {
      TComponent   *comp=Components[i];
      if(comp-> InheritsFrom(__classid(TSpeedButton)))
      dynamic_cast <TSpeedButton   *> (comp)-> Down=false;
      }
      Sleep(1000);
}
//---------------------------------------------------------------------------


//TSpeedButton的Caption分别为1~32的数字。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值