ThreadPool.UnsafeQueueUserWorkItem Metode

Definisi

Overload

Nama Deskripsi
UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean)

Mengantrekan objek item kerja yang ditentukan ke kumpulan utas.

UnsafeQueueUserWorkItem(WaitCallback, Object)

Mengantrekan delegasi yang ditentukan ke kumpulan utas, tetapi tidak menyebarluaskan tumpukan panggilan ke utas pekerja.

UnsafeQueueUserWorkItem<TState>(Action<TState>, TState, Boolean)

Mengantrekan metode yang ditentukan oleh Action<T> delegasi untuk eksekusi, dan menentukan objek yang berisi data yang akan digunakan oleh metode . Metode ini dijalankan ketika utas kumpulan utas tersedia.

UnsafeQueueUserWorkItem(IThreadPoolWorkItem, Boolean)

Sumber:
ThreadPoolWorkQueue.cs
Sumber:
ThreadPoolWorkQueue.cs
Sumber:
ThreadPoolWorkQueue.cs
Sumber:
ThreadPoolWorkQueue.cs
Sumber:
ThreadPoolWorkQueue.cs

Mengantrekan objek item kerja yang ditentukan ke kumpulan utas.

public:
 static bool UnsafeQueueUserWorkItem(System::Threading::IThreadPoolWorkItem ^ callBack, bool preferLocal);
public static bool UnsafeQueueUserWorkItem(System.Threading.IThreadPoolWorkItem callBack, bool preferLocal);
static member UnsafeQueueUserWorkItem : System.Threading.IThreadPoolWorkItem * bool -> bool
Public Shared Function UnsafeQueueUserWorkItem (callBack As IThreadPoolWorkItem, preferLocal As Boolean) As Boolean

Parameter

callBack
IThreadPoolWorkItem

Item kerja yang akan dipanggil saat utas di kumpulan utas mengambil item kerja.

preferLocal
Boolean

true untuk lebih memilih antrean item kerja dalam antrean yang dekat dengan utas saat ini; false untuk lebih memilih antrean item kerja ke antrean bersama kumpulan utas.

Mengembalikan

true jika metode berhasil; OutOfMemoryException dilemparkan jika item kerja tidak dapat diantrekan.

Pengecualian

callBack adalah null.

Item kerja adalah Task.

Item kerja tidak dapat diantrekan.

Keterangan

Kumpulan utas akan memanggil metode item Execute() kerja. Merupakan tanggung jawab item kerja tersebut untuk disebarluaskan ExecutionContext jika diperlukan; kumpulan utas tidak akan melakukannya.

Berlaku untuk

UnsafeQueueUserWorkItem(WaitCallback, Object)

Sumber:
ThreadPoolWorkQueue.cs
Sumber:
ThreadPoolWorkQueue.cs
Sumber:
ThreadPoolWorkQueue.cs
Sumber:
ThreadPoolWorkQueue.cs
Sumber:
ThreadPoolWorkQueue.cs

Mengantrekan delegasi yang ditentukan ke kumpulan utas, tetapi tidak menyebarluaskan tumpukan panggilan ke utas pekerja.

public:
 static bool UnsafeQueueUserWorkItem(System::Threading::WaitCallback ^ callBack, System::Object ^ state);
public static bool UnsafeQueueUserWorkItem(System.Threading.WaitCallback callBack, object? state);
public static bool UnsafeQueueUserWorkItem(System.Threading.WaitCallback callBack, object state);
[System.Security.SecurityCritical]
public static bool UnsafeQueueUserWorkItem(System.Threading.WaitCallback callBack, object state);
static member UnsafeQueueUserWorkItem : System.Threading.WaitCallback * obj -> bool
[<System.Security.SecurityCritical>]
static member UnsafeQueueUserWorkItem : System.Threading.WaitCallback * obj -> bool
Public Shared Function UnsafeQueueUserWorkItem (callBack As WaitCallback, state As Object) As Boolean

Parameter

callBack
WaitCallback

WaitCallback yang mewakili delegasi untuk dipanggil saat utas di kumpulan utas mengambil item kerja.

state
Object

Objek yang diteruskan ke delegasi saat dilayankan dari kumpulan utas.

Mengembalikan

true jika metode berhasil; OutOfMemoryException dilemparkan jika item kerja tidak dapat diantrekan.

Atribut

Pengecualian

Pemanggil tidak memiliki izin yang diperlukan.

Kondisi kehabisan memori ditemui.

Item kerja tidak dapat diantrekan.

callBack adalah null.

Keterangan

Tidak seperti metode , QueueUserWorkItemUnsafeQueueUserWorkItem tidak menyebarluaskan tumpukan panggilan ke utas pekerja. Ini memungkinkan kode untuk kehilangan tumpukan panggilan dan dengan demikian untuk meningkatkan hak istimewa keamanannya.

Caution

Menggunakan UnsafeQueueUserWorkItem secara tidak sengaja dapat membuka lubang keamanan. Keamanan akses kode mendasarkan pemeriksaan izinnya pada izin semua pemanggil di tumpukan. Ketika pekerjaan diantrekan pada utas kumpulan utas menggunakan UnsafeQueueUserWorkItem, tumpukan utas kumpulan utas tidak akan memiliki konteks pemanggil yang sebenarnya. Kode berbahaya mungkin dapat mengeksploitasi ini untuk menghindari pemeriksaan izin.

Lihat juga

Berlaku untuk

UnsafeQueueUserWorkItem<TState>(Action<TState>, TState, Boolean)

Sumber:
ThreadPoolWorkQueue.cs
Sumber:
ThreadPoolWorkQueue.cs
Sumber:
ThreadPoolWorkQueue.cs
Sumber:
ThreadPoolWorkQueue.cs
Sumber:
ThreadPoolWorkQueue.cs

Mengantrekan metode yang ditentukan oleh Action<T> delegasi untuk eksekusi, dan menentukan objek yang berisi data yang akan digunakan oleh metode . Metode ini dijalankan ketika utas kumpulan utas tersedia.

public:
generic <typename TState>
 static bool UnsafeQueueUserWorkItem(Action<TState> ^ callBack, TState state, bool preferLocal);
public static bool UnsafeQueueUserWorkItem<TState>(Action<TState> callBack, TState state, bool preferLocal);
static member UnsafeQueueUserWorkItem : Action<'State> * 'State * bool -> bool
Public Shared Function UnsafeQueueUserWorkItem(Of TState) (callBack As Action(Of TState), state As TState, preferLocal As Boolean) As Boolean

Jenis parameter

TState

Jenis elemen .state

Parameter

callBack
Action<TState>

Delegasi yang mewakili metode untuk dijalankan.

state
TState

Objek yang berisi data yang akan digunakan oleh metode .

preferLocal
Boolean

true untuk lebih memilih antrean item kerja dalam antrean yang dekat dengan utas saat ini; false untuk lebih memilih antrean item kerja ke antrean bersama kumpulan utas.

Mengembalikan

true jika metode berhasil diantrekan; NotSupportedException dilemparkan jika item kerja tidak dapat diantrekan.

Pengecualian

callBack adalah null.

Item kerja tidak dapat diantrekan.

Berlaku untuk