この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 29278|答える: 2

[出典] .net/c# スレッドスレッド 一時停止と再開 旧式のソリューション

[リンクをコピー]
掲載地 2018/05/17 9:36:10 | | | |
Thread.Suspendは推奨されていません。  System.Threading内のMonitor、Mutex、Event、Semaphoreなど他のクラスを使ってスレッドの同期やリソース保護を行ってください。  ハイパーリンクのログインが見えます。
Thread.Resumeは廃止されました。  System.Threading内のMonitor、Mutex、Event、Semaphoreなど他のクラスを使ってスレッドの同期やリソース保護を行ってください。  ハイパーリンクのログインが見えます。
スレッドが一時停止や継続を望む場合、私は以前にSuspendとResumeの2つの方法を使ったことがありますが、この2つの方法でスレッドを操作しています。これは実は問題があり、当時は気にしていませんでした。なので、今日取り出して詳しく見てみましょう!

上記の2つの方法でスレッドを一時停止・継続することの問題点は何ですか?

例えば、スレッドを一時停止するためにSuspendメソッドを呼び出し、その後すぐにResumeメソッドを呼び出してスレッドを継続した場合、問題が生じる可能性があります。

なぜなら、スレッドを一時停止するためにSuspendメソッドを呼んだ後、スレッドがすぐに停止されるわけではなく、処理時間がかかるため、この時点ですぐにResumeメソッドを呼び出してスレッドを続けると、プログラムはすぐにハングします!

マイクロソフトの説明は次の通りです:


スレッド活動の同期にサスペンドおよび再開メソッドを使用しないでください。 スレッドの実行を一時停止したときにコードが何なのか分かる方法はありますか? セキュリティ権限評価中にロックを保持すると、AppDomain内の他のスレッドがブロックされる可能性があります。 クラス構造体を実行する際にAppDomain内の他のスレッドを一時停止すると、そのクラスの使用はブロックされます。 行き詰まりは簡単に起こり得ます。

//
        概要:
        停止スレッドを続けてください。
        //
        異常:
        T:System.Threading.ThreadStateException:
        スレッドは開始されておらず、死んでおらず、保留中でもありません。
        //
        T:System.Security.SecurityException:
        発信者は適切なSystem.Security.Permissions.SecurityPermissions.SecurityPermissionを持っていません。
        [Obsolete("スレッド。履歴書は廃止されました。  System.Threading内のMonitor、Mutex、Event、Semaphoreなど他のクラスを使ってスレッドの同期やリソース保護を行ってください。  ハイパーリンクのログインが見えます。「、誤り」です)。
        [セキュリティ安全クリティカル]
        パブリック・ヴォイド 履歴書();

この問題をどう解決すればいいのでしょうか?



ManualResetEvent クラス

1つ以上の待機スレッドにイベント発生を通知します。 そのようなタイプは遺伝できません。


テストコードは以下の通りです:








先の:C#は携帯電話にテキストメッセージを送信します
次に:SQLはデータからスペースを除去します
 地主| 掲載地 2018/05/17 21:14:51 |
_event。 Set(); スレッドを続けることです
_event。 リセット(); スレッドをサスペンドすることを意味します
 地主| 掲載地 2018/05/29 14:58:49 |
現在のスレッドのIDを入手したら、以下を使いましょう:

Thread.CurrentThread.ManagedThreadId.ToString()(推奨)
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com