|
发表于 2020-7-31 09:03:23
|
显示全部楼层
哥们你贴出来的代码没问题:
using System;
using System.Threading;
namespace TestThread
{
class Program
{
static AutoResetEvent usSendEvent = new AutoResetEvent(false);
static public void sendmessage()
{
usSendEvent.Set();
}
static public void Thread1()
{
int i = 0;
while (true)
{
if (usSendEvent.WaitOne())
{
object LockThis = new object();
lock (LockThis)
{
++i;
Console.WriteLine("Hello {0}!", i);
}
}
}
}
static public void Thread2()
{
sendmessage();
Thread.Sleep(100);
sendmessage();
Thread.Sleep(100);
sendmessage();
Thread.Sleep(100);
sendmessage();
Thread.Sleep(100);
sendmessage();
Thread.Sleep(100);
sendmessage();
Thread.Sleep(100);
sendmessage();
Thread.Sleep(100);
sendmessage();
Thread.Sleep(100);
sendmessage();
Thread.Sleep(100);
sendmessage();
Thread.Sleep(100);
}
static void Main(string[] args)
{
Thread rec_th = new Thread(new ThreadStart(Thread1));
rec_th.Priority = ThreadPriority.AboveNormal;
rec_th.IsBackground = true;
rec_th.Start();
Thread displayoriginaldata_th = new Thread(new ThreadStart(Thread2));
displayoriginaldata_th.Priority = ThreadPriority.BelowNormal;
displayoriginaldata_th.IsBackground = true;
displayoriginaldata_th.Start();
while (true)
{
Thread.Sleep(100);
}
}
}
}
结果:
Hello 1!
Hello 2!
Hello 3!
Hello 4!
Hello 5!
Hello 6!
Hello 7!
Hello 8!
Hello 9!
Hello 10!
还有啥逻辑藏在后面的,你自己研究研究,先别怀疑微软提供的这些基础设施。 |
|