threadstatic

    17

    2答えて

    私は各スレッドの前にstaticの値を格納する必要があるコンポーネントを持っています。これは、ASP.NETだけでなく、多くのシナリオで使用できる一般的なコンポーネントです。 私は目標を達成するために[ThreadStatic]属性を使用することを考えていました。私はすべてのリクエストが自分のスレッドで呼び出されていると仮定していたので、ASP.NETシナリオでもうまくいくと仮定します。 調査の結

    2

    4答えて

    私は自分のコードの一部から第三者コードのいくつかのレイヤーを呼び出しています。コール・サーフェスは、私が書いたコードを呼び出して、ある時点で私のコードに戻ってきます。言い換えれば 、コードの呼び出しチェーンは次のようになります。 My code #1 --> 3rd party code --> My code #2 残念ながら、私はサードパーティのコードに渡す何もコードの、第2片に与えら

    6

    2答えて

    私はtips and tricksポストで読んでいましたが、私はこれまでにやったことのないC#のものを試してみたいと思っていました。したがって、次のコードは実際の目的を果たすものではなく、何が起こるかを見るための「テスト関数」に過ぎません。あなたが見ることができるように private static volatile string staticVolatileTestString = ""; [

    9

    2答えて

    小さなテストプログラムを作成しましたが、lock {}ソリューションがロックフリーより速く実行されていますが、静的変数よりも[ThreadStatic]属性の方が優れています。 [ThreadStatic]スニペット: [ThreadStatic] private static long ms_Acc; public static void RunTest() { Stopwatc

    7

    1答えて

    私は、デスクトップのwinformアプリケーションの非常に大きく古いコードベースに取り組んでいます。このコードベースでは、主にBackgroundWorkerを使用してバックグラウンドスレッドで実行される多くの操作があります。 このコードベースの共通パターンは、実行中のスレッドにアーティファクトをバインドすることによって複雑さを隠すことです。たとえば、データベース接続とトランザクションは[Thre

    1

    1答えて

    私は、ASP.NET Webフォームコードビヘイビア内に静的な接続変数を持っています。ページのロードイベントでは、別のスレッドでいくつかのメソッドを実行しています。各スレッドは、この接続オブジェクトのスレッドスタティックインスタンスを使用します。私がしたいのは、ページのdisposeイベントで、その接続変数のすべての静的インスタンスを一度に消去することです。これが不可能な場合は、各メソッドの最後に

    1

    1答えて

    私は3つのスレッドを作成しました。スレッド1以外のすべてのスレッドは、スレッドローカル属性の増分操作を行います。 threadlocal delegateのthreadstatic属性を11の値で初期化しています。 ここでは、常に最初のスレッドでnum = 0の値を取得しています。なぜそうなのか? class Program { //static int numDuplica

    4

    2答えて

    私は "ロギングコンテキスト"を追跡する能力を持っている私が書いたロギングフレームワークを持っています。それはプラグイン可能な戦略フレームワークを持っていますが、最も頻繁に使用するのは、[ThreadStatic]変数でコンテキストを追跡するThreadStaticバリアントです。私は、マルチスレッドワークフローでのコンテキストのロギングに関する問題を解決しようとしてきました。目標は、共通のスレッ

    1

    1答えて

    1回のリクエストでスレッド静的な変数を使用する可能性はありますか?現在のコードでは、スレッドの静的変数をロギングに使用しています。新しいスレッドが開かれたときに変数がnullになるため、非同期コントローラメソッド(asyncおよびawaitパターン)を使用して問題が発生します。

    61

    3答えて

    [ThreadStatic]は属性を使用して定義され、ThreadLocal<T>は汎用を使用して定義されます。 異なるデザインソリューションが選ばれたのはなぜですか? この場合、汎用オーバー属性を使用するメリットとデメリットは何ですか?