1.代码
class RunningAShread
{
public const int nums=200;
private void DoWork(object obj)
{
for (int i = 0; i < nums; i++)
{
Console.Write(obj.ToString());
}
}
public void Run()
{
Thread backgroundThread = new Thread(new ThreadStart(() =>
{
for (int i = 0; i < nums; i++)
{
Console.Write('+');
}
}));
backgroundThread.Start();
backgroundThread.Priority = ThreadPriority.AboveNormal;
ThreadPool.QueueUserWorkItem((obj) =>
{
for (int i = 0; i < nums; i++)
{ Console.Write(obj.ToString()); }
}, "#");
Console.WriteLine("Thread is Alive:"+backgroundThread.IsAlive.ToString());
backgroundThread.Join(5);//最多等待主线程100ms过期不候,如果将这个时间设置短一点会看到效果的
for (int i = 0; i < nums; i++)
{
Console.Write('-');
}
Console.WriteLine("Thread is Alive:" + backgroundThread.IsAlive.ToString());
}
}
2.总结
这里使用线程池创建匿名委托新建线程,比新写一个方法要简便得多。
ThreadPool.QueueUserWorkItem((obj) =>
{
for (int i = 0; i < nums; i++)
{ Console.Write(obj.ToString()); }
}, "#");