主题:c#线程问题,请高手近来帮忙解决!
小弟从书上打的一段线程的代码,可编译运行后控制台反映狂慢,等半天也输不出结果,请各位高人帮忙指点一下,代码如下:
using System;
using System.Threading;
namespace ThreadTest
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
Class1 demo = new Class1();
Thread one = new Thread(new ThreadStart(demo.count));
Thread two = new Thread(new ThreadStart(demo.count));
Thread three = new Thread(new ThreadStart(demo.count));
one.Name = "Thread One";
two.Name = "Thread two";
three.Name = "Thread three";
one.Start();
two.Start();
three.Start();
Thread.Sleep(500);
one.Suspend();
three.Abort();
two.Join();
one.Resume();
}
public void count()
{
try
{
for(int i = 0;i<5;i++)
{
Console.WriteLine("{0}:{1}",Thread.CurrentThread.Name,i);
Thread.Sleep(200);
}
}
catch(ThreadAbortException e)
{
Console.WriteLine("\nAttempt to Abort" + Thread.CurrentThread.Name);
Console.WriteLine(e.Message);
}
Console.WriteLine(Thread.CurrentThread.Name + " : out of for loop");
}
}
}
using System;
using System.Threading;
namespace ThreadTest
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
Class1 demo = new Class1();
Thread one = new Thread(new ThreadStart(demo.count));
Thread two = new Thread(new ThreadStart(demo.count));
Thread three = new Thread(new ThreadStart(demo.count));
one.Name = "Thread One";
two.Name = "Thread two";
three.Name = "Thread three";
one.Start();
two.Start();
three.Start();
Thread.Sleep(500);
one.Suspend();
three.Abort();
two.Join();
one.Resume();
}
public void count()
{
try
{
for(int i = 0;i<5;i++)
{
Console.WriteLine("{0}:{1}",Thread.CurrentThread.Name,i);
Thread.Sleep(200);
}
}
catch(ThreadAbortException e)
{
Console.WriteLine("\nAttempt to Abort" + Thread.CurrentThread.Name);
Console.WriteLine(e.Message);
}
Console.WriteLine(Thread.CurrentThread.Name + " : out of for loop");
}
}
}