原文:http://bbs.youkuaiyun.com/topics/391020219#post-399131587
class Program
{
static int dur = 200;
static string tm = "";
static void Main(string[] args)
{
for (int i = 0; i < 10; i++)
{
var td = new Thread(new ThreadStart(
() =>
{
lock (tm)
{
if (tm == "")
{
Thread.Sleep(dur);
}
else
{
var t=DateTime.Now.Subtract(DateTime.Parse(tm));
Thread.Sleep(dur - (int)t.TotalSeconds);
}
};
DoSomeThing();
}
));
td.Start();
}
Console.Read();
}
private static void DoSomeThing()
{
tm = DateTime.Now.ToShortTimeString();
string info = string.Format("线程ID:{0},执行时间:{1}"
, Thread.CurrentThread.Name, DateTime.Now.ToString("yyyy-MM-dd-HH:mm:ss:ffff"));
Console.WriteLine(info);
Thread.Sleep(5000);
}
}
本文通过一个C#代码示例介绍了如何使用锁(lock)来实现线程间的同步操作,确保同一时间内只有一个线程可以更新共享资源。该示例还展示了如何根据不同条件设置线程的睡眠时间,以达到有序执行的目的。

被折叠的 条评论
为什么被折叠?



