ITPub博客

首页 > IT基础架构 > 网络安全 > 技术教程网 -- 实用技术参考 (转)

技术教程网 -- 实用技术参考 (转)

原创 网络安全 作者:amyz 时间:2007-10-17 18:17:27 0 删除 编辑
技术教程网 -- 实用技术参考 (转)[@more@]

程序是用来测试线程
cpu的主频不同以及运行的进程数不同结果会稍有不同
考资料.NET编程经典———从C++到Visual C++.NET快速进阶>
Aravind Corera Stephen Fraser 等著 乐思(wrox)出版社出
file://http://p2p.wrox.com
#include "stdafx.h"
#using SCOrlib.dll>
#include
using namespace System;
using namespace System::Threading; file://为线程管理提供方法和属性
 
__gc class gcsimple
{
public:
 gcsimple();
 void ThreaFunc1();
private:
 String *strToday;
};
gcsimple::gcsimple()
{
 strToday=DateTime::Now.ToShortDateString();
}
void gcsimple::ThreaFunc1()
{
 Console::WriteLine(S"今天是{0}",strToday);
 for(int i=0;i<10;i++)
 {
 Console::WriteLine(S"进程号={0},i={1}",Appdomain::GetCurrentThreadId().ToString(),i.ToString());
 for(int j=0;j<1000000000;j++)
  int jj=j*j;

 }
}
 
int _tmain(void) 
{
  Console::WriteLine(S"这是一个进程测试程序");
 gcsimple *st=new gcsimple();
 ThreadStart *d1=new ThreadStart(st,gcsimple::ThreaFunc1);  file://定义一个委托指向要执行的线程,委托的声明部分以由系统定义
 Thread *t1=new Thread(d1);  file://将委托指针传递给Thread类并由Thread类来管理线程
 Console::WriteLine(S"t1的状态{0}",__box(t1->ThreadState));
 Console::WriteLine(S"启动t1所管理的线程");
 t1->Start();  file://启动t1所管理的线程
 Thread::Sleep(0);  file://返回主线程t1所管理的线程与主线程并行执行
 Console::WriteLine(S"t1的状态是{0}",__box(t1->ThreadState));
 t1->Suspend();  file://挂起t1所指的线程 
 Thread::Sleep(0);
 Console::WriteLine(S"t1的状态是{0}",__box(t1->ThreadState)); 
 t1->Resume();  file://恢复t1所指的线程
 Thread::Sleep(0);
 Console::WriteLine(S"t1的状态是{0}",__box(t1->ThreadState)); 
  t1->Join();  file://结束线程添加此方法后将使t1所管理的线程在高优先级执行,线程结束后在返回主线程执行
 Console::WriteLine(S"t1所管理的线程已经结束");
 return 0;
}


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752019/viewspace-977196/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    3984
  • 访问量
    7362976