この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。
建築家
建築家
リスト
放送
茶屋
インテリジェントAI会話
.NETキャリア&テクニカルカレッジ
ちっちゃいなクズブログ
この版
利用者
Architect_Programmer_Code農業ネットワーク
»
建築家
›
プログラミング
›
.Net/C#
›
C#はマルチスレッド環境で安全なトラバーサル操作を実行します
眺める:
19029
|
答える:
0
[出典]
C#はマルチスレッド環境で安全なトラバーサル操作を実行します
[リンクをコピー]
クズども
掲載地 2016/10/18 13:55:48
|
|
|
本記事では、Listを操作オブジェクトとして使用しています
MSDNは公式にListのスレッド安全性声明を出しています:
この種の公開静的メンバーはスレッド安全です。 しかし、どのインスタンスメンバーもスレッド安全であることを保証することはできません。
コレクションが改変されない限り、Listは複数のリーダーを同時にサポートできます。 集合を列挙することは本質的にスレッド安全なプロセスではありません。 列挙が1つ以上の書き込みアクセスと競合する稀なケースでは、スレッドを安全に保つ唯一の方法は列挙期間中ずっとコレクションをロックすることです。 複数のスレッドがコレクションにアクセスして読み書きを行うには、独自の同期を実装する必要があります。
同期しなければ?
もし1つのスレッドが削除操作を実行し、1つのスレッドが通過操作を行うと、通過プロセス中にコレクションが変更され、InvalidOperationException例外が現れます。これにより「コレクションが変更されました」と表示されます。 列挙操作は行えません。
トランバーサルのセキュリティを確保するための同期方法
クリティカルゾーン、ミューテックスはここではスレッド通過プロセスを保護するために使われており、例のコードは以下の通りです。
ログインが見えます。
先の:
中国ユニコムの公式アカウントのjssdk署名エラーの解決策
次に:
asp.net MVCグローバル例外処理および例外ログ
関連記事
•
.NET/C# は .NET SDK と .NET CLI テレメトリをオフにします
•
. NET6における優先度キュー
•
ASP.NET Core(32)はKeyedServicesの鍵サービスの注入に依存しています
•
Nginxリバースプロキシ ASP.NET コアはUDS通信を使用します
•
.NET/C# 依存注入サービス登録 Scrutor ツール
•
[ターン]。 NET/C#はどのようにしてインスタンスがどれだけのメモリを占有しているかを計算しているのですか?
•
フロントエンドフレームワークはComponent-Partyオープンソースプロジェクトを学習します
•
.NET/C# はオブジェクト(クラスインスタンス)内の文字列の非空文字列をデスペース化します。
•
.NET/C# 正規表現 正規表現マッチング抽出
•
.NET/C# メソッド ImplOptions.AggressiveInlining パフォーマンス最適化
閲覧したセクション
オラクル
サーバー構成
Microsoft SQL Server
C/C++
フロントエンドフレーム
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。
Mail To:help@itsvse.com