C#问题 改善代码问题

要求1.封装成类来分配num,2.monitor这个地方要换种用法,(因为如果上面break退出了,下面就没有了,所以要换种写法)
如下代码:
using System;
using System.Threading;
namespace ConsoleApplication1
{
class Program
{
int num = 0, maxnum = 100;
void outNumber(object index)
{
while (true)
{
Monitor.Enter(this);
if (num >= maxnum) break;
num++;
Console.WriteLine("线程" + index + ":" + num);
Monitor.Exit(this);
}
}
static void Main(string[] args)
{
var p = new Program();
var pools = new Thread[4];
for (var i = 0; i < 4; i++)
{
pools[i] = new Thread(p.outNumber);
}
for (var i = 0; i < 4; i++)
{
pools[i].Start(i);
}
Console.ReadKey();
}
}
}

加if判断就是防止越界超过maxnum用的,超过了就结束循环(退出线程),如果要释放锁,可以在break前释放,防止还继续占用着

封装成类不太明白什么意思,其实已经是类了,名称为class Program,Main只是放到了Program类里面,线程运行的代码是Program类的实例方法。

        void outNumber(object index)
        {
            while (true)
            {
                Monitor.Enter(this);
                if (num >= maxnum)
                {
                    Monitor.Exit(this);///////
                    break;
                }
                num++;
                Console.WriteLine("线程" + index + ":" + num);
                Monitor.Exit(this);
            }
        }