ホームページ > バックエンド開発 > C++ > C# で同時タスクを制限するにはどうすればよいですか?

C# で同時タスクを制限するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-29 04:08:10
オリジナル
419 人が閲覧しました

How to Limit Concurrent Tasks in C#?

C# での同時タスクの制限

マルチスレッドおよび非同期プログラミングでは、並列タスクの数を制御することでパフォーマンスを向上させ、安定性を維持できます。この質問では、C# で同時タスクの最大数を制限する方法について説明します。

同時実行の制限

提供されたコード ブロックは、入力メッセージごとに新しいタスクを作成する例を示しています。 。このアプローチでは、メッセージ数が多い場合、過剰なリソース使用率が発生する可能性があります。同時実行性を制限するには、MaxDegreeOfParallelism で Parallel.ForEach を利用することを検討してください。

Parallel.ForEach(messages, new ParallelOptions { MaxDegreeOfParallelism = 10},
msg =>
{
     // logic
     Process(msg);
});
ログイン後にコピー

MaxDegreeOfParallelism を 10 に指定すると、最大 10 個のメッセージが同時に処理され、リソースの負担が軽減されます。

メンテナンスシーケンス

ただし、このアプローチでは、元のコレクションと同じ順序でメッセージが処理されることは保証されません。順序を確保するには、Parallel LINQ ライブラリの SequentialQuery を使用します。

var processedMessages = messages.AsParallel()
    .AsOrdered()  // Preserves order
    .Select(msg => Process(msg))
    .ToList(); // Forces execution
ログイン後にコピー

これにより、並列処理を利用して効率を高めながら、メッセージが入力コレクションと同じ順序で処理されることが保証されます。

以上がC# で同時タスクを制限するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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