問題タブ [threadcontext]
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.
c# - C# のスレッド コンテキストとは正確には何ですか?
私は WCF サービスを持っており、データベースへの各呼び出しをログに記録します。後で例外が発生した場合も、別のデータベースに記録されます。
何が例外の原因であるかを確認できるように、これらの両方のログを結び付ける方法が必要でした。これを行うには、呼び出しごとに取得できる何らかの一意の ID が必要でした。
全体が単一のスレッドで実行されているため、たとえば、スレッド名を GUID に設定できます。System.Threading.Thread.CurrentThread.Name = Guid.NewGuid().ToString();
しかし、これは少しハックです。
ネットを検索して発見しましSystem.Threading.Thread.CurrentContext.SetProperty()
たが、そのコンテキストが正確に何であるか疑問に思っています。スレッドの期間中にプロパティを保存するように設計されていますか? スレッドごとに一意ですか?
5つの同時WCF呼び出しがある場合、いわば「呼び出しごと」ではない場合、コンテキストで起こっていることの間に競合が発生することは望ましくありません。
誰かが明確にすることができますか?
c - アラーム ハンドラでの swapcontext 後のセグメンテーション違反
基本的に私がやろうとしているのは、コンテキスト切り替えを使用して単一のスレッドでマルチスレッドをシミュレートすることです。10 マイクロ秒ごとにアラームを設定し、コンテキストをあるスレッドから別のスレッドに切り替えます。問題は、アラームがスワップコンテキストを終了した直後に、5 回に 1 回の実行でセグ フォールトが発生することです。少なくとも、gdb でトレースしたところです。
ここに私のソースファイルmain.cがあります
UMT.h
およびumt.c
さまざまな組み合わせを試し、命令ごとにトレースを試みましたが、このセグ フォールトの原因についての結論や考えには至りませんでした。ありがとう
c++ - コアファイルからマイクロスレッドを理解するように gdb に教える
(カスタム ビルド) マイクロ スレッド ソリューションを採用する巨大なプログラムに取り組んでいます。クラッシュのデバッグが必要になることがあります。そんな時、マイクロスレッドを切り替えられると便利です。
ライブ デバッグを行っている場合は、すべてのレジスタをマイクロ スレッド コンテキストから取得したレジスタに置き換えることができます。これを行うマクロを作成しましたが、非常にうまく機能します。
問題は、(コア ファイルから) 事後デバッグを行っている場合、レジスタ値を変更できないことです。このような場合、GDB に現在のフレームの概念を変更するように指示する方法はありません。その場合、すべてのレジスタが読み取り専用と見なされるためです。
カスタム コンテキスト管理について GDB に伝える方法はありますか?
シャチャー
c - 64 ビット プロセス (Windows) でスレッド コンテキストを適切に保存および復元するにはどうすればよいですか?
ライブラリを 64 ビット プロセスから解放するためのコードを以下に示します。それはその仕事をしますが、問題は、保存されたコンテキストを復元した後、ターゲットプロセスがクラッシュすることです. ここで何が問題なのかわかりません。すべてのレジスタとフラグを以前のものに設定する必要がありますよね?. 私は何を間違っていますか?
c# - なぜ Thread.CurrentContext プロパティと Thread.GetDomain() メソッドなのですか?
それほど重要な問題ではありませんが、なぜ Thread クラスが現在の Context を取得するためのプロパティ ( Thread.CurrentContext ) と現在の AppDomain を取得するためのメソッド ( Thread.GetDomain() ) を公開しているのか疑問に思っていました。
Process > AppDomain > Context > Thread の階層を知っていると、スレッドのコンテキストは現時点で既知であり、現在のコンテキストに基づいてドメインを検索する必要があると思います。
しかし、もっと賢明な答えを聞きたいです。ありがとう!
c# - 非同期スレッド コンテキスト ID
更新今は問題ありません。Dispatcher.Invoke メソッドの内部と外部で返される theadID が異なることに気付きませんでした。
私の理解では、非同期を使用する場合、待機中のタスク T1 は別のスレッドで実行され、待機中のコードはタスク T2 として T1 の ContinueWith でラップされます。したがって、以下のコードでは threadcontextID が異なると思います。ただし、以下のコードは同じ ThreadContextID を生成します。私の理解は間違っていますか?
また、T1 では Dispatcher を使用する必要があるのに、T2 ではメイン UI を直接更新できるのはなぜですか? threadContext スイッチは async/await でどのように機能しますか? ありがとう。
更新: T1 のコードは、VS Debug Thread ビューの MainThread で実行されています。ただし、メイン スレッドにある場合、UI を直接更新できないのはなぜですか? CrossThread 例外が発生します。
UI の xaml コード
ruby-on-rails - Jruby スレッド コンテキスト インスタンスの関連付け
Rubyでjavascriptを評価しようとしています。
そして、コントローラーで使用しています:
しかし、時々このエラーが発生します(100リクエストに1回)
スタック:
- ruby 1.9 モードの jruby-1.7.3
- jruby_min_runtimes と jruby_min_runtimes が 1 のトリニダード サーバー
- レール3.2.13
- テルビリノ 2.0.2
すでに最大ランタイムと最小ランタイムを 1 に設定している場合、そもそもこの問題を回避すべきではありませんか?