>백엔드 개발 >C#.Net 튜토리얼 >태스크 사용법 시작 방법 예

태스크 사용법 시작 방법 예

零下一度
零下一度원래의
2017-06-23 16:15:352922검색

첫 번째, 기본 사용법

Thread, ThreadPool 및 Task의 차이점
Task는 .NET4.0에 추가되었습니다. Task를 사용하여 새 작업을 시작할 때 스레드가 호출됩니다. 스레드 풀에서 가져오고 Thread는 인스턴스화될 때마다 새 스레드를 생성합니다.
장기 작업인 경우 작업(Aton, TaskCreationOptions) 생성자에서
TaskCreationOptions.LongRunning을 사용하세요. 이 생성자는 작업 스케줄러에 힌트를 주고 이 스레드를 스레드가 아닌 풀에 배치하여 실행합니다

두 번째, 네 가지 시작 방법

1) 시작부터 시작하고 매개 변수가 Action인 Task를 새로 만듭니다.
 class Program
    {
        static void Main(string[] args)
        {
            Task t = new Task(DoA);
            t.Start();
            Console.ReadKey();
        }
        static void DoA()
        {
            for (int i = 0; i < 100; i++)
            {
                Console.WriteLine("i={0}\n", i);
            }
        }
    }

2) Run을 통해 직접 실행하고 매개변수 Action, 반환 개체는 Task

 static void Main(string[] args)
        {
            Task.Run(() =>
            {
                for (int i = 0; i < 50; i++)
                {
                    Console.WriteLine("i={0}",i);
                }
            });
            Console.ReadKey();
        }

3) 반환 매개변수가 있는 스레드

   Task<int> task = Task.Run<int>(() =>
            {
                int sum = 0;
                for (int i = 0; i < 50; i++)
                {
                    sum += 1;
                }
                return sum;
            });
            int result = task.Result;
            Console.WriteLine("运算结果是:{0}",result);//输出50
            Console.ReadKey();

4) Task.Factory

  Task t = Task.Factory.StartNew(() =>
              {
                  for (int i = 0; i < 10; i++)
                  {
                      Console.WriteLine("i={0}", i);
                  }
              });

를 통해

위 내용은 태스크 사용법 시작 방법 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.