タスク利用起動方法例

零下一度
リリース: 2017-06-23 16:15:35
オリジナル
2923 人が閲覧しました

まずは基本的な使い方

Thread、ThreadPool、Taskの違い
Taskは.NET4.0で追加されたスレッドプールThreadPoolと同様の機能を持ち、Taskを使って新しいタスクを開始するとスレッドが呼び出されます。スレッド プールから取得され、Thread はインスタンス化されるたびに新しいスレッドを作成します。
長期的な操作の場合は、Task (Acton、TaskCreationOptions) コンストラクターで
TaskCreationOptions.LongRunning を使用してください。これはタスク スケジューラにヒントを与え、このスレッドを実行のために非スレッド プールに置きます

2 番目、4 つの起動方法

1) 開始から開始まで、タスクを新規作成します。パラメータはアクションです
 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 を介して直接実行し、パラメータアクション、戻りオブジェクトは 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 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート