没有计算密集型C#程序的好处?

arh*_*sim -1 c# multithreading visual-studio-2010

我试图看到以下两个程序之间的性能差异(期待).但我发现没有区别.这是正常的吗?我在Windows Core 2 Duo M/C Visual Studio 2010速成版上运行

程序1(平均超过100次运行:824.11 ms):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.Threading;


namespace MultiThreading
{
    class Program
    {
        public static Stopwatch stopwatch;
        static void Main(string[] args)
        {
            stopwatch = new Stopwatch();
            stopwatch.Start();
            //Thread t = new Thread(WriteY);
            //t.Start();
            for (int i = 0; i < 10000; i++)
            {
                Console.Write("x{0} ", i);
            }

            WriteY();

            Console.WriteLine("Time taken in milliseconds: {0}", stopwatch.ElapsedMilliseconds);
            Console.ReadLine();
        }

        static void WriteY()
        {
            for (int i = 0; i < 10000; i++)
            {
                Console.Write("y{0} ", i);
            }
            //Console.WriteLine("Time taken in milliseconds: {0}", stopwatch.ElapsedMilliseconds);
            //Console.ReadLine();
        }
Run Code Online (Sandbox Code Playgroud)

计划2(平均超过100次运行:828.11毫秒):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.Threading;


namespace MultiThreading
{
    class Program
    {
        public static Stopwatch stopwatch;
        static void Main(string[] args)
        {
            stopwatch = new Stopwatch();
            stopwatch.Start();
            Thread t = new Thread(WriteY);
            t.Start();
            for (int i = 0; i < 10000; i++)
            {
                Console.Write("x{0} ", i);
            }

            //WriteY();

            Console.WriteLine("Time taken in milliseconds: {0}", stopwatch.ElapsedMilliseconds);
            Console.ReadLine();
        }

        static void WriteY()
        {
            for (int i = 0; i < 10000; i++)
            {
                Console.Write("y{0} ", i);
            }
            //Console.WriteLine("Time taken in milliseconds: {0}", stopwatch.ElapsedMilliseconds);
            //Console.ReadLine();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Jef*_*ter 8

我的猜测是两者都受到Console.Write可能需要锁定资源(屏幕)的速度的限制,因此一次只有一个线程访问它.