Tout d'abord, utilisation de base
La différence entre Thread, ThreadPool et Task
Task a été ajoutée dans .NET4.0 et a des fonctions similaires au pool de threads ThreadPool lors de l'utilisation de Task pour démarrer. une nouvelle tâche, le thread sera appelé depuis le pool de threads et Thread créera un nouveau thread à chaque fois qu'il sera instancié.
S'il s'agit d'une opération à long terme, veuillez utiliser
TaskCreationOptions.LongRunning dans le constructeur Task (Acton, TaskCreationOptions), ce qui implique que le planificateur de tâches mette ce fil Exécuter sur un pool non-thread
Les deuxième et quatrième méthodes de démarrage
1) Démarrer par démarrer, nouveau Tâche, où le paramètre est une Action
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);
}
}
}
Copier après la connexion
2) Exécuter directement via Exécuter , accepte une Action comme paramètre, et l'objet de retour est une Tâche
static void Main(string[] args)
{
Task.Run(() =>
{
for (int i = 0; i < 50; i++)
{
Console.WriteLine("i={0}",i);
}
});
Console.ReadKey();
}
Copier après la connexion
3) Fil de discussion avec paramètres de retour
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();
Copier après la connexion
4) Via Task.Factory
Task t = Task.Factory.StartNew(() =>
{
for (int i = 0; i < 10; i++)
{
Console.WriteLine("i={0}", i);
}
});
Copier après la connexion
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn