問題タブ [multithreading]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
7 に答える
3950 参照

c# - インスタンスコンストラクターは静的メンバーを設定しますが、スレッドセーフですか?

私はいくつかのコードをリファクタリングしていlockて、インスタンスコンストラクターでの使用について疑問に思っています。

確認してください

  1. インスタンスコンストラクタはスレッドセーフです。
  2. lockステートメントは、静的な「counter」メンバーではなく、そのコードブロックへのアクセスを防ぎます。

元のプログラマーの意図が各インスタンスにその「カウント」を認識させることであった場合、「カウンター」メンバーへのアクセスを同期して、別のスレッドが新しいスレッドではないことを確認し、MyClassこのスレッドがカウント?

参考までに-このクラスはシングルトンではありません。インスタンスは、単にその数を認識している必要があります。

0 投票する
9 に答える
7351 参照

c# - シングルトンのメンバーのスレッドセーフな使用

複数のクラスが使用する C# シングルトン クラスがあります。InstanceメソッドへのアクセスはToggle()スレッドセーフですか? はいの場合、どのような仮定、ルールなどによって。いいえの場合、なぜどのように修正できますか?

0 投票する
3 に答える
611 参照

c - マルチスレッドの最良の方法は?

C言語でマルチスレッド化する最良の方法は何ですか? CPU ホグではなく、非常に効率的なものが必要です。ありがとう。

0 投票する
5 に答える
738 参照

vb.net - IISでコードを実行するために同じスレッドが使用されていることを確認するにはどうすればよいですか?

IIS6でホストされているWebサービスで使用されるサードパーティのdllがあります。問題は、このdllがメモリにロードされると、それを作成したスレッドとは異なるスレッドがdll内のコードを実行しようとすると、例外AccessViolationExceptionがスローされることです。ワーカープロセスはマルチスレッドであり、Webサービスへの各呼び出しはプールからランダムなスレッドを取得します。メモリからアンロードし、必要になるたびにリロードしようとしましたが、フロントエンドのみが.Netであり、残りは管理されていないため、実際にメモリから完全にアンロードされることはありません。VBと.Net2.0を使用しています。助言がありますか?

(ロブウォーカーへの応答)

新しいスレッドを作成し、それを使用してdllを呼び出すことを検討しましたが、スレッドを停止させて呼び出しを待機するにはどうすればよいですか?.Net 3.0で提供されるDispatcherクラスを使用せずに、どのようにして呼び出しをスレッドに委任しますか?非表示のフォームを作成してメッセージループに入れるとうまくいく場合があります。次に、フォームのInvoke()メソッドを呼び出すことができます。しかし、IISでホストされているWebサービス内にフォームを作成すると、多くの問題が発生することがわかります。

0 投票する
8 に答える
8500 参照

c# - 特定のスレッドで例外をスローするためのC#の良い方法はありますか

書きたいコードはこんな感じです。

スレッド A によってフラグが設定されているかどうかを確認するために、スレッド セーフな方法でスレッド B を定期的にチェックできることはわかっていますが、それではコードがより複雑になります。私が使用できるより良いメカニズムはありますか?

定期的なチェックのより具体的な例を次に示します。

0 投票する
6 に答える
2588 参照

silverlight - SilverlightDataBindingクロススレッドの問題

オブジェクトのプロパティにソースがバインドされたImageコントロールがあります(画像への文字列URL)。サービスコールを行った後、データオブジェクトを新しいURLで更新します。例外は、PropertyChangedイベントを呼び出した後、コードを離れた後にスローされます。

データ構造とサービスロジックはすべて、UIの知識がないコアdllで実行されます。ディスパッチャにアクセスできない場合、UIスレッドと同期するにはどうすればよいですか?

PS:ルートビジュアルが別のスレッドにあるため、ディスパッチャーにアクセスするためにApplication.Current.RootVisualにアクセスすることは解決策ではありません(防止する必要がある正確な例外が発生します)。

PPS:これは画像コントロールの問題であり、他のUI要素へのバインドであり、クロススレッドの問題は自動的に処理されます。

0 投票する
2 に答える
442 参照

.net - .NET スレッドでコード ブロック全体を確実に実行する方法はありますか?

私の C# プログラムには、実行中のテストを表すスレッドがあります。このスレッドは、「実行の中断」というラベルの付いたボタンをクリックすることで中止できます。ThreadAbortedExceptionスレッド (したがってテスト) がエレガントな方法で終了する (そして事前にいくつかの重要な作業を行う) ために、このボタンは、明確に定義されたいくつかの瞬間にのみ有効になりますThread.ResetAbort()。 、 スレッド)。

問題は、アボートが可能な時間枠では、一度開始すると最初から最後まで実行する必要があるいくつかのタスクがあり、TAE が怖いことです。ロックはこれに対する解決策を提供しません。また、finally ブロックは解決策を提供しますが、次の方法で重要なコードをラップするのはエレガントではありません。

ただし、他の解決策は見つかりませんでした。

ThreadAbortExceptionこれはブロックの終わりまで干渉を遅らせる別の方法ですか?

0 投票する
6 に答える
9466 参照

performance - 単一の CPU での複数のスレッドとパフォーマンス

ハイパースレッディングを持たない単一の CPU を搭載したコンピューターで複数のスレッドを使用すると、パフォーマンス上の利点はありますか?

0 投票する
12 に答える
44036 参照

c# - C#のマルチスレッドスプラッシュ画面?

アプリケーションの読み込み中にスプラッシュ画面を表示したい。システムトレイコントロールが関連付けられたフォームがあります。このフォームの読み込み中にスプラッシュ画面を表示したいのですが、WebサービスAPIにアクセスしてドロップダウンを入力するため、少し時間がかかります。また、ロードする前に依存関係の基本的なテストを行いたいと思います(つまり、Webサービスが利用可能であり、構成ファイルが読み取り可能です)。起動の各フェーズが進むにつれて、進行状況に応じてスプラッシュ画面を更新したいと思います。

私はスレッドについてたくさん読んでいますが、これをどこから制御すべきか(main()方法は?)に迷っています。また、どのようにApplication.Run()機能するのかがわかりません。これは、このためのスレッドを作成する必要がある場所ですか?さて、システムトレイコントロールを備えたフォームが「生きている」フォームである場合、スプラッシュはそこから来る必要がありますか?とにかくフォームが完成するまでロードされませんか?

私はコードの配布物を探しているのではなく、アルゴリズム/アプローチの詳細を探しているので、これを一度だけ理解することができます:)

0 投票する
3 に答える
10415 参照

.net - WCF サービス STA を作成する方法 (シングルスレッド)

UI コンポーネントを含む WCF サービスを使用しているため、強制的に STA モードになります。

サービスの動作を STA モードに設定するにはどうすればよいですか?


このサービスは、画像分析用の UI ウィンドウ (ビュー ポートとして使用) を開く WPF DLL ファイルへの参照を使用します。サービスがその項目のインスタンスを作成しようとすると (ウィンドウから継承)、例外がスローされます。

呼び出しスレッドは STA でなければなりません