[解決済み] スレッドセーフとは何ですか?
2022-05-14 15:46:26
質問
最近、あるスレッド (UI スレッド以外) からテキストボックスにアクセスしようとしたところ、例外がスローされました。それは、コードがスレッドセーフでないことについて何かを言ったので、私はデリゲート (MSDN からのサンプルは役に立ちました) を書いて、代わりにそれを呼び出すことにしました。
しかし、それでも、なぜすべての余分なコードが必要なのかよく理解できませんでした。
更新しました。 このままでは、何か重大な問題が発生するのでは?
Controls.CheckForIllegalCrossThread..blah =true
どのように解決するのですか?
エリック・リッパート というタイトルの素敵なブログポストがあります。 スレッドセーフと呼ばれるものは何ですか? というタイトルのブログ記事で、Wikipedia にあるスレッドセーフの定義について説明しています。
リンク先から抽出した3つの重要なこと。
「複数のスレッドが同時に実行されたときに正しく機能する場合、スレッドセーフである。 複数のスレッドによる同時実行時に正しく機能する場合、コード片はスレッドセーフである。"
"特に、複数のスレッドが同じ共有データにアクセスする必要性を満たす必要があります。 同じ共有データにアクセスする必要があります。
"...そして、共有されたデータの一部に対して、任意の時点で1つのスレッドだけがアクセスする必要性 スレッドによってアクセスされる必要があります。
間違いなく一読の価値あり!
関連
-
コレクションが変更されたため、列挙操作が実行できない場合がある Error
-
[解決済み] C++11では、標準化されたメモリモデルが導入されました。その意味するところは?そして、C++プログラミングにどのような影響を与えるのでしょうか?
-
[解決済み] プロセスとスレッドの違いは何ですか?
-
[解決済み] レースコンディションとは何ですか?
-
[解決済み] リスコフ置換原理の例として、どのようなものがありますか?
-
[解決済み] シンクロナイズド」とはどういう意味ですか?
-
[解決済み] べき乗演算とは何ですか?
-
[解決済み】定義と宣言の違いは何ですか?
-
[解決済み] デッドロックとは何ですか?
-
[解決済み] スレッドコンテキストスイッチとプロセスコンテキストスイッチの比較
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
コレクションが変更されたため、列挙操作が実行できない場合がある Error
-
[解決済み] スレッドは何本までならOK?
-
[解決済み] 再帰的ロック (Mutex) vs 非再帰的ロック (Mutex)
-
[解決済み] 技術的に、なぜErlangのプロセスはOSのスレッドよりも効率的なのですか?
-
[解決済み] ロックされていないミューテックスをロックすることは、どの程度効率的ですか?ミューテックスのコストは?
-
[解決済み] マルチスレッドに代わるNode JSを把握する
-
[解決済み] スレッドセーフとは何ですか?
-
[解決済み] Powershellでコマンドを並列に実行することはできますか?
-
[解決済み] コンパイル時の-pthreadと-lpthreadの違いについて
-
[解決済み] ノンブロッキングI/Oは、マルチスレッドのブロッキングI/Oより本当に速いのか?どのように?