Heim  >  Artikel  >  Backend-Entwicklung  >  Beispiel für eine Startmethode für die Aufgabenverwendung

Beispiel für eine Startmethode für die Aufgabenverwendung

零下一度
零下一度Original
2017-06-23 16:15:352895Durchsuche

Erste grundlegende Verwendung

Der Unterschied zwischen Thread, ThreadPool und Task
Task wurde in .NET4.0 hinzugefügt und hat ähnliche Funktionen wie der Thread-Pool ThreadPool, wenn Task zum Starten verwendet wird Bei einer neuen Aufgabe wird der Thread aus dem Thread-Pool aufgerufen und Thread erstellt bei jeder Instanziierung einen neuen Thread.
Wenn es sich um einen Langzeitvorgang handelt, verwenden Sie bitte
TaskCreationOptions.LongRunning im Task-Konstruktor (Acton, TaskCreationOptions), was bedeutet, dass der Taskplaner diesen Thread platziert Auf Nicht-Thread-Pool ausführen

Die zweite und vierte Startmethode

1) Beginnen Sie mit dem Start, neu Aufgabe, bei der der Parameter eine Aktion ist
 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) Direkt über Ausführen ausführen , akzeptiert eine Aktion als Parameter und das Rückgabeobjekt ist eine Aufgabe

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

3) Thread mit Rückgabeparametern

   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) Durch Task.Factory

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

 

Das obige ist der detaillierte Inhalt vonBeispiel für eine Startmethode für die Aufgabenverwendung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn