private long count=0;
private void xx() { count++; }
private void button1_Click(object sender, EventArgs e)
{
ma = new Thread(new ThreadStart(xx));
ma.Start();
}
//我希望启用一个新的线程,使得xx()能够持续循环执行。
//但是这里它只执行了一次。
请问:如何启用一个新的线程,使它像一个timer控件一样能按照指定间隔执行某个方法,而不是只执行一次就结束?
如果是顺序执行用异步委托或者线程的Join方法
{
for(int i=0;i<100;i++)
{
Thread ma = new Thread(new ThreadStart(xx));
ma.Start();
}
}
这个性能开销比较大吧,如果我想执行100W次,那么不是要申请100W次的Thread实例吗??而且这样的话,性能开销也消耗在当前线程的申请过程中,而不是另一个线程的执行过程中了
ma = new Thread(new ThreadStart(xx));
ma.Start();
{
//code
Thread.Sleep(time);
Thread ma = new Thread(new ThreadStart(xx));
ma.Start();
}
private long count=0;
private void xx() { count++; }//间隔执行的时间
private Int16 gblTimer = 0;private void yy()
{
//死循环
while(true)
{
xx();
if (退出死循环的条件)
{
break;
} //暂停1秒
Thread.Sleep(gblTimer);
}
}private void button1_Click(object sender, EventArgs e)
{
//设定间隔执行的时间,1秒
gblTimer = 1000; ma = new Thread(new ThreadStart(yy));
ma.Start();
}
//这样也许可以
private void button1_Click(object sender, EventArgs e)
{
//全局变量
i++; //时间间隔
Timer = 1000; ma = new Thread(new ThreadStart(yy));
ma.Start();
}
public void yy()
{
if(i != 100W)
{
button1(null,null);
}
}
到时间了: new 一个线程,去干活去
自己睡个定时长的觉。