Thread.BeginThreadAffinity メソッドとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > Thread.BeginThreadAffinity メソッドの意味・解説 

Thread.BeginThreadAffinity メソッド

メモ : このメソッドは、.NET Framework version 2.0新しく追加されたものです。

マネージ コード現在のオペレーティング システム物理スレッドID依存する命令実行開始することをホスト通知します

名前空間: System.Threading
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Shared Sub BeginThreadAffinity
Thread.BeginThreadAffinity
public static void BeginThreadAffinity
 ()
public:
static void BeginThreadAffinity ()
public static void BeginThreadAffinity
 ()
public static function BeginThreadAffinity
 ()
例外例外
例外種類条件

SecurityException

呼び出し元に必要なアクセス許可がありません。

解説解説

共通言語ランタイム一部ホスト (たとえば Microsoft® SQL Server "Yukon") では、独自のスレッド管理機能用意されています。独自のスレッド管理機能を持つホストは、いつでも実行タスクオペレーティング システム物理スレッド間で移動できます。ほとんどのタスクはこの切り替え影響を受けません。ただし、一部タスクにはスレッド アフィニティあります。つまり、これらのタスクは、オペレーティング システム物理スレッドID依存します。これらのタスクは、切り替えてはいけないコード実行するときにホスト通知する必要があります

たとえば、Win32 CRITICAL_SECTION のようなスレッド アフィニティを持つオペレーティング システムロック取得するシステム APIアプリケーション呼び出す場合、このロック取得する前に BeginThreadAffinity呼び出しロック解放した後に EndThreadAffinity を呼び出す必要があります

また、WaitHandle から継承する .NET Framework の型はオペレーティング システム オブジェクト依存するため、これらの型をブロックする前に BeginThreadAffinity呼び出す必要があります

SQL Server "Yukon" で実行するコード内でこのメソッド使用するには、ホスト保護レベル最大にしてコード実行する必要があります

使用例使用例

BeginThreadAffinity メソッドおよび EndThreadAffinity メソッド使用してコード ブロックオペレーティング システム物理スレッドID依存することをホスト通知する例を次に示します

Imports System.Threading
Imports System.Security.Permissions

<SecurityPermission(SecurityAction.Demand, Flags:=SecurityPermissionFlag.ControlThread)>
 _
Friend Class MyUtility
    <SecurityPermission(SecurityAction.Demand, Flags:=SecurityPermissionFlag.ControlThread)>
 _
    Public Sub PerformTask() 
        ' Code that does not have thread affinity goes here.
        '
        Thread.BeginThreadAffinity()
        '
        ' Code that has thread affinity goes here.
        '
        Thread.EndThreadAffinity()
        '
        ' More code that does not have thread affinity.
    End Sub 'PerformTask
End Class 'MyUtility 
using System.Threading;
using System.Security.Permissions;

[SecurityPermission(SecurityAction.Demand, Flags=SecurityPermissionFlag.ControlThread)]
public class MyUtility
{
    [SecurityPermission(SecurityAction.Demand, Flags=SecurityPermissionFlag.ControlThread)]
    public void PerformTask()
    {
        // Code that does not have thread affinity goes here.
        //
        Thread.BeginThreadAffinity();
        //
        // Code that has thread affinity goes here.
        //
        Thread.EndThreadAffinity();
        //
        // More code that does not have thread affinity.
    }
}
using namespace System::Threading;
using namespace System::Security::Permissions;

public ref class MyUtility
{
public:
   [SecurityPermissionAttribute(SecurityAction::Demand, ControlThread=true)]
   void PerformTask()
   {
      // Code that does not have thread affinity goes here.
      //
      Thread::BeginThreadAffinity();
      //
      // Code that has thread affinity goes here.
      //
      Thread::EndThreadAffinity();
      //
      // More code that does not have thread affinity.
   }
};
.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照


このページでは「.NET Framework クラス ライブラリ リファレンス」からThread.BeginThreadAffinity メソッドを検索した結果を表示しています。
Weblioに収録されているすべての辞書からThread.BeginThreadAffinity メソッドを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からThread.BeginThreadAffinity メソッド を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Thread.BeginThreadAffinity メソッド」の関連用語

Thread.BeginThreadAffinity メソッドのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Thread.BeginThreadAffinity メソッドのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS