問題タブ [threadstatic]
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.
.net - ADO.NET Data ServicesでThreadStatic属性を(安全に)使用できますか?
スレッドごとのデータをADO.NETデータサービスに保存したい。スレッド固有の静的変数でThreadStatic属性を使用しても安全ですか、それとも問題が発生しますか?私の懸念は、リクエストが完了してスレッドが終了した後、ThreadStatic変数がガベージコレクションされないことです。
私がやろうとしていることを行うためのより良い方法があれば、私に知らせてください。これは最も単純な解決策のようです。
どんな情報でも非常に役に立ちます、ありがとう!
thread-safety - BizTalk マッパーと [ThreadStatic] 属性
最近、BizTalk マッパーのマルチスレッドの性質と、外部アセンブリの処理方法に関する問題に遭遇しました。
MSDN からのこの引用が示すように:
スクリプトFunctoid で使用するために外部アセンブリで記述されたコードは、スレッド セーフである必要があります。これが必要なのは、マップの複数のインスタンスがストレス条件下で実行時にこれらの .NET インスタンスを使用できるためです。
Mapper は、外部アセンブリのインスタンスを再利用します。
私のチームが使用していたユーティリティ アセンブリには、次のコードがありました。
これにより、あるファイルのストア参照が別のファイルにマップされていました。
プライベートフィールドを装飾することでこれを修正したようです[ThreadStatic]
私の質問は、BizTalk マッパーでこれに関する問題を知っている人はいますか? [ThreadStatic]
スレッドが再利用されているため、Asp.Net での使用に問題があることは認識していますが、BizTalk マッパーがスレッドを処理する方法に関するドキュメントは見つかりません。
c# - ThreadStatic値を継承して、マルチスレッドコンテキストのC#/。NETで動的スコープを実装します
新しく生成されたスレッドに、親スレッドのThreadStatic状態(またはそのようなもの)の値を継承させる方法はありますか?これ(またはそのようなもの)を使用して、追跡/ロギングなどに使用する操作/タスクコンテキスト情報を含む「動的スコープ」の特別な変数を実装したいと思います。これは合理的なアプローチであり、機能させることができますか?
asp.net - WCFリクエストはスレッドアジャイルを処理していますか?
アジャイルAsp.Netリクエストの処理方法に関する多くのドキュメントを見てきましたか?知りたいのは、WCFリクエストの処理と同じ場合です。Wcf要求の処理を開始するスレッドがそれを終了するという事実に頼ることができますか?
多くの場所でThreadStatic変数が使用されるWcfアプリケーションを維持しています。コードは機能していますが、信頼できますか?変更する価値はありますか、それともそのままにしておくべきですか?
f# - ここでは、ネストされたメモ化に沿った何かが必要ですか?
System.Transactionsは、同じデータベースへの複数の接続を含むトランザクションをDTCにエスカレートすることで有名です。以下のモジュールとヘルパークラスはConnectionContext
、同じデータベースに対する複数の接続要求が同じ接続オブジェクトを返すようにすることで、これを防ぐことを目的としています。これは、ある意味でメモ化ですが、メモ化されるものは複数あり、2番目は最初のものに依存しています。このモジュールで同期および/または可変状態(おそらくメモ化を使用)を非表示にする方法、またはより機能的なスタイルで書き直す方法はありますか?
(Transaction.Currentはであるため、接続文字列で接続を取得するときにロックがないことは何の価値もありませんThreadStatic
。)
.net - スレッドローカルのインスタンス変数を持つ簡単な方法はありますか?
このThreadStatic
属性を使用すると、static
スレッドごとにオブジェクトのインスタンスを 1 つ持つクラスのメンバーを持つことができます。これは、スレッド セーフなインスタンス メソッドを保証しない型のオブジェクト ( などSystem.Random
) を使用してスレッド セーフを実現する場合に非常に便利です。
static
ただし、それはメンバーに対してのみ機能します。クラスメンバーをスレッドローカルとして宣言する簡単な方法はありますか?つまり、各クラスインスタンスはスレッドごとにオブジェクトを取得しますか?
c# - スレッドの実行中に C# スレッド パラメータが変更される - なぜですか?
したがって、List<myObj> のディクショナリを取得し、ディクショナリのキーを循環して、各 List<myObj> を別のスレッドに渡すメソッドがあります。
ここにいくつかのコード/擬似コードがあります:
問題は、ProcessList の実行中に myList パラメータが単純に変更されることです。
スレッドをキックする前にリストをループし、すぐにスレッド内でループしましたが、結果が異なることがわかりました。
その後、Dictionary 変数をグローバルにすることで問題を解決しました (と思います!)。[ThreadStatic] プロパティの使用は、可能な修正のリストの次です。
私が本当に知りたいのは、おそらく myList オブジェクトが ProcessEntries() で再割り当てされたときに、 ProcessList() 内で myList オブジェクトが変更されるのはなぜですか? これらは 2 つの異なる List ではありませんか? すべてのパラメーターの受け渡しがデフォルトで値渡しである場合、 ProcessList() 関数が myList のローカル コピーを持たないのはなぜですか? (そうですか?)
パラメータをスレッドに渡し、実行中に親スレッドまたは他のスレッドによって変更されないように指定する方法はありますか? (これは、グローバル変数の [ThreadSafe] 属性に似ています)
asp.net - ThreadStaticメンバーは、ページが読み込まれるたびに値を失います
私はasp.netWebアプリケーションにveeeryyy基本シングルトンを持っています:
通常、すべてが正常ですが、今回はすべてのページで_Instanceがnullになります。
さらに、**とマークされた行の_Instanceを監視しようとすると、非常に奇妙なエラーが発生します。
含まれているクラスに関する情報が利用できないため、フィールド'_Instance'の値をフェッチできません。
このクラスをアップロードするために何を引き起こすことができますか?
.net - ThreadStatic と ThreadLocalパフォーマンス: スピードアップまたは代替手段?
私は最近、ThreadStatic とマークされたフィールドのパフォーマンスの低下に関するこの投稿を読みました。これらは、通常のフィールド アクセスよりも 60 倍遅いようです。.NET 4 の ThreadLocal< T > のパフォーマンスは向上しますか?
高パフォーマンスのスレッド固有のストレージを提供する代替手段はありますか?
c# - ThreadStatic IDisposable を自動的に破棄できますか?
これは、dispose を自動的に呼び出す方法の問題ではありません。私の問題は逆です。各スレッドに ThreadStatic Graphics (Image から作成されたもの) があり、テキスト サイズの測定を実行するスレッド プールがあります。ここで、TextRenderingHint プロパティを読み取っても失敗する (ArgumentException が発生する) ため、時々グラフィックが破棄されているように見えるという問題に遭遇しました。
スレッドが長時間アイドル状態の場合など、グラフィックスを破棄するメカニズムはありますか?