Bagikan melalui


ProcessThread.ProcessorAffinity Properti

Definisi

Mengatur prosesor tempat utas terkait dapat berjalan.

public:
 property IntPtr ProcessorAffinity {  void set(IntPtr value); };
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public IntPtr ProcessorAffinity { set; }
public IntPtr ProcessorAffinity { set; }
[System.ComponentModel.Browsable(false)]
public IntPtr ProcessorAffinity { set; }
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
member this.ProcessorAffinity : nativeint
member this.ProcessorAffinity : nativeint
[<System.ComponentModel.Browsable(false)>]
member this.ProcessorAffinity : nativeint
Public Property ProcessorAffinity As IntPtr

Nilai Properti

IntPtr

nativeint

Yang IntPtr menunjuk ke satu set bit, yang masing-masing mewakili prosesor yang dapat dijalankan utas.

Atribut

Pengecualian

Afinitas prosesor tidak dapat disetel.

Prosesnya ada di komputer jarak jauh.

Contoh

Contoh berikut menunjukkan cara mengatur ProcessorAffinity properti untuk instans Notepad ke prosesor pertama.

using System;
using System.Diagnostics;

namespace ProcessThreadIdealProcessor
{
    class Program
    {
        static void Main(string[] args)
        {
            // Make sure there is an instance of notepad running.
            Process[] notepads = Process.GetProcessesByName("notepad");
            if (notepads.Length == 0)
                Process.Start("notepad");
            ProcessThreadCollection threads;
            //Process[] notepads;
            // Retrieve the Notepad processes.
            notepads = Process.GetProcessesByName("Notepad");
            // Get the ProcessThread collection for the first instance
            threads = notepads[0].Threads;
            // Set the properties on the first ProcessThread in the collection
            threads[0].IdealProcessor = 0;
            threads[0].ProcessorAffinity = (IntPtr)1;
        }
    }
}
Imports System.Diagnostics



Class Program
    
    Shared Sub Main(ByVal args() As String) 
        ' Make sure there is an instance of notepad running.
        Dim notepads As Process() = Process.GetProcessesByName("notepad")
        If notepads.Length = 0 Then
            Process.Start("notepad")
        End If
        Dim threads As ProcessThreadCollection
        'Process[] notepads;
        ' Retrieve the Notepad processes.
        notepads = Process.GetProcessesByName("Notepad")
        ' Get the ProcessThread collection for the first instance
        threads = notepads(0).Threads
        ' Set the properties on the first ProcessThread in the collection
        threads(0).IdealProcessor = 0
        threads(0).ProcessorAffinity = CType(1, IntPtr)
    End Sub
End Class

Keterangan

Afinitas prosesor utas adalah sekumpulan prosesor yang memiliki hubungan dengannya. Dengan kata lain, mereka yang dapat dijadwalkan untuk dijalankan.

ProcessorAffinity mewakili setiap prosesor sebagai sedikit. Bit 0 mewakili prosesor satu, bit 1 mewakili prosesor dua, dan sebagainya. Tabel berikut ini memperlihatkan subset yang mungkin ProcessorAffinity untuk sistem empat prosesor.

Nilai properti (dalam heksadesimal) Prosesor yang valid
0x0001 1
0x0002 2
0x0003 1 atau 2
0x0004 3
0x0005 1 atau 3
0x0007 1, 2, atau 3
0x000F 1, 2, 3, atau 4

Anda juga dapat menentukan prosesor tunggal pilihan untuk utas dengan mengatur IdealProcessor properti . Utas proses dapat bermigrasi dari prosesor ke prosesor, dengan setiap migrasi memuat ulang cache prosesor. Menentukan prosesor untuk utas dapat meningkatkan performa di bawah beban sistem berat dengan mengurangi berapa kali cache prosesor dimuat ulang.

Berlaku untuk

Lihat juga