我想知道线程和任务之间的区别。
除了简单的逻辑之外,还打印了两个线程和两个任务的结束时间。两个任务的结束时间相同。
我有一个代码。
当两个线程执行时,两个任务的结束时间相同。
因为任务执行异步并行,所以我认为任务的结束时间将是线程的一半。
我的想法有什么错误?
class Program
{
static ConcurrentBag<string> cb = new ConcurrentBag<string>();
static System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
static void Main(string[] args)
{
sw.Start();
// no.1 Thread
Thread1();
Thread2();
// no.2 Task
//Task1();
//Task2();
while (true)
{
if (cb.Count == 1000000)
{
sw.Stop();
Console.WriteLine($"{cb.First()} Completed -> Time : {sw.ElapsedMilliseconds}");
break;
}
}
Console.ReadKey(true);
}
static void CommonCode(string msg)
{
for (int i = 0; i < 500000; i++)
cb.Add(msg);
}
static void Thread1()
{
Thread t = new Thread(() => {
CommonCode("Thread");
});
t.Start();
}
static void Thread2()
{
Thread t = new Thread(() => {
CommonCode("Thread");
});
t.Start();
}
static async void Task1()
{
await Task.Run(() => {
CommonCode("Task");
});
}
static async void Task2()
{
await Task.Run(() => {
CommonCode("Task");
});
}
}
动漫人物
相关分类