Share via


Dispatcher.Invoke Metode

Definisi

Menjalankan delegasi yang ditentukan secara sinkron pada utas yang Dispatcher terkait dengannya.

Overload

Invoke(DispatcherPriority, TimeSpan, Delegate, Object, Object[])

Menjalankan delegasi yang ditentukan pada prioritas yang ditentukan dengan argumen yang ditentukan secara sinkron pada utas yang Dispatcher terkait dengan.

Invoke(DispatcherPriority, TimeSpan, Delegate, Object)

Menjalankan delegasi yang ditentukan pada prioritas yang ditentukan dengan argumen yang ditentukan secara sinkron pada utas yang Dispatcher terkait dengan.

Invoke(DispatcherPriority, Delegate, Object, Object[])

Menjalankan delegasi yang ditentukan pada prioritas yang ditentukan dengan argumen yang ditentukan secara sinkron pada utas yang Dispatcher terkait dengan.

Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan)

Menjalankan yang ditentukan Action secara sinkron pada prioritas yang ditentukan pada utas yang Dispatcher terkait dengannya.

Invoke(DispatcherPriority, TimeSpan, Delegate)

Menjalankan delegasi yang ditentukan secara sinkron pada prioritas yang ditentukan dan dengan nilai waktu habis yang ditentukan pada utas yang Dispatcher dibuat.

Invoke(DispatcherPriority, Delegate, Object)

Menjalankan delegasi yang ditentukan pada prioritas yang ditentukan dengan argumen yang ditentukan secara sinkron pada utas yang Dispatcher terkait dengan.

Invoke(Delegate, TimeSpan, DispatcherPriority, Object[])

Menjalankan delegasi yang ditentukan dalam rentang waktu yang ditentukan pada prioritas yang ditentukan dengan argumen yang ditentukan secara sinkron pada utas yang Dispatcher terkait dengan.

Invoke(Delegate, TimeSpan, Object[])

Menjalankan delegasi yang ditentukan dalam rentang waktu yang ditentukan pada prioritas yang ditentukan dengan argumen yang ditentukan secara sinkron pada utas yang Dispatcher terkait dengan.

Invoke(Action, DispatcherPriority, CancellationToken)

Menjalankan yang ditentukan Action secara sinkron pada prioritas yang ditentukan pada utas yang Dispatcher terkait dengannya.

Invoke(DispatcherPriority, Delegate)

Menjalankan delegasi yang ditentukan secara sinkron pada prioritas yang ditentukan pada utas yang Dispatcher terkait dengannya.

Invoke(Delegate, Object[])

Menjalankan delegasi yang ditentukan dengan argumen yang ditentukan secara sinkron pada utas yang Dispatcher terkait dengannya.

Invoke(Action, DispatcherPriority)

Menjalankan yang ditentukan Action secara sinkron pada prioritas yang ditentukan pada utas yang Dispatcher terkait dengannya.

Invoke(Action)

Menjalankan yang ditentukan Action secara sinkron pada utas yang Dispatcher terkait dengannya.

Invoke(Delegate, DispatcherPriority, Object[])

Menjalankan delegasi yang ditentukan pada prioritas yang ditentukan dengan argumen yang ditentukan secara sinkron pada utas yang Dispatcher terkait dengan.

Invoke<TResult>(Func<TResult>)

Menjalankan yang ditentukan Func<TResult> secara sinkron pada utas yang Dispatcher terkait dengannya.

Invoke<TResult>(Func<TResult>, DispatcherPriority)

Menjalankan yang ditentukan Func<TResult> secara sinkron pada prioritas yang ditentukan pada utas yang Dispatcher terkait dengannya.

Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken)

Menjalankan yang ditentukan Func<TResult> secara sinkron pada prioritas yang ditentukan pada utas yang Dispatcher terkait dengannya.

Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken, TimeSpan)

Menjalankan yang ditentukan Func<TResult> secara sinkron pada prioritas yang ditentukan pada utas yang Dispatcher terkait dengannya.

Contoh

Contoh berikut menempatkan delegasi ke Dispatcher dalam Normal menggunakan Invoke.

// Places the delegate onto the UI Thread's Dispatcher
private void timer_Elapsed(object sender, ElapsedEventArgs e)
{
    // Place delegate on the Dispatcher.
    this.Dispatcher.Invoke(DispatcherPriority.Normal,
        new TimerDispatcherDelegate(TimerWorkItem));
}
' Places the delegate onto the UI Thread's Dispatcher
Private Sub timer_Elapsed(ByVal sender As Object, ByVal e As ElapsedEventArgs)
    ' Place delegate on the Dispatcher.
    Me.Dispatcher.Invoke(DispatcherPriority.Normal, New TimerDispatcherDelegate(AddressOf TimerWorkItem))
End Sub

Keterangan

Di WPF, hanya utas yang membuat DispatcherObject dapat mengakses objek tersebut. Misalnya, utas latar belakang yang dipisahkan dari utas UI utama tidak dapat memperbarui konten yang Button dibuat pada utas UI. Agar utas latar belakang dapat mengakses properti Konten dari Button, utas latar belakang harus mendelegasikan pekerjaan ke Dispatcher yang terkait dengan utas UI. Ini dicapai dengan menggunakan atau InvokeBeginInvoke. Invoke sinkron dan BeginInvoke asinkron. Operasi ditambahkan ke antrean Dispatcher peristiwa pada yang ditentukan DispatcherPriority.

Invoke adalah operasi sinkron; oleh karena itu, kontrol tidak akan kembali ke objek panggilan sampai setelah panggilan balik kembali.

Invoke(DispatcherPriority, TimeSpan, Delegate, Object, Object[])

Menjalankan delegasi yang ditentukan pada prioritas yang ditentukan dengan argumen yang ditentukan secara sinkron pada utas yang Dispatcher terkait dengan.

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, TimeSpan timeout, Delegate ^ method, System::Object ^ arg, ... cli::array <System::Object ^> ^ args);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, TimeSpan timeout, Delegate method, object arg, params object[] args);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * TimeSpan * Delegate * obj * obj[] -> obj
Public Function Invoke (priority As DispatcherPriority, timeout As TimeSpan, method As Delegate, arg As Object, ParamArray args As Object()) As Object

Parameter

priority
DispatcherPriority

Prioritas, relatif terhadap operasi lain yang tertunda dalam Dispatcher antrean peristiwa, yang dengannya metode yang ditentukan dipanggil.

timeout
TimeSpan

Jumlah waktu maksimum untuk menunggu operasi dimulai. Setelah operasi dimulai, operasi akan selesai sebelum metode ini kembali. Untuk menentukan tunggu tak terbatas, gunakan nilai -1. Dalam panggilan utas yang sama, nilai negatif lainnya dikonversi menjadi -1, mengakibatkan penantian tak terbatas. Dalam panggilan lintas utas ArgumentOutOfRangeException, nilai negatif lainnya melempar .

method
Delegate

Delegasi ke metode yang mengambil beberapa argumen, yang didorong ke antrean Dispatcher peristiwa.

arg
Object

Objek untuk diteruskan sebagai argumen ke metode yang ditentukan.

args
Object[]

Array objek untuk diteruskan sebagai argumen ke metode yang ditentukan.

Mengembalikan

Nilai yang dikembalikan dari delegasi yang dipanggil atau null jika delegasi tidak memiliki nilai pengembalian.

Atribut

Pengecualian

priority sama dengan Inactive.

methodadalah null.

timeout adalah angka negatif selain -1, dan metode ini dipanggil di seluruh utas.

Keterangan

arg bisa jika null argumen tidak diperlukan.

Di WPF, hanya utas yang membuat DispatcherObject dapat mengakses objek tersebut. Misalnya, utas latar belakang yang dipisahkan dari utas UI utama tidak dapat memperbarui konten yang Button dibuat pada utas UI. Agar utas latar belakang dapat mengakses properti Konten dari Button, utas latar belakang harus mendelegasikan pekerjaan ke Dispatcher yang terkait dengan utas UI. Ini dicapai dengan menggunakan atau InvokeBeginInvoke. Invoke sinkron dan BeginInvoke asinkron. Operasi ditambahkan ke antrean Dispatcher peristiwa pada yang ditentukan DispatcherPriority.

Invoke adalah operasi sinkron; oleh karena itu, kontrol tidak akan kembali ke objek panggilan sampai setelah panggilan balik kembali.

Berlaku untuk

Invoke(DispatcherPriority, TimeSpan, Delegate, Object)

Menjalankan delegasi yang ditentukan pada prioritas yang ditentukan dengan argumen yang ditentukan secara sinkron pada utas yang Dispatcher terkait dengan.

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, TimeSpan timeout, Delegate ^ method, System::Object ^ arg);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, TimeSpan timeout, Delegate method, object arg);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * TimeSpan * Delegate * obj -> obj
Public Function Invoke (priority As DispatcherPriority, timeout As TimeSpan, method As Delegate, arg As Object) As Object

Parameter

priority
DispatcherPriority

Prioritas, relatif terhadap operasi lain yang tertunda dalam Dispatcher antrean peristiwa, yang dengannya metode yang ditentukan dipanggil.

timeout
TimeSpan

Jumlah waktu maksimum untuk menunggu operasi dimulai. Setelah operasi dimulai, operasi akan selesai sebelum metode ini kembali. Untuk menentukan tunggu tak terbatas, gunakan nilai -1. Dalam panggilan utas yang sama, nilai negatif lainnya dikonversi menjadi -1, mengakibatkan penantian tak terbatas. Dalam panggilan lintas utas ArgumentOutOfRangeException, nilai negatif lainnya melempar .

method
Delegate

Delegasi ke metode yang mengambil beberapa argumen, yang didorong ke antrean Dispatcher peristiwa.

arg
Object

Objek untuk diteruskan sebagai argumen ke metode yang diberikan. Ini bisa null jika tidak ada argumen yang diperlukan.

Mengembalikan

Nilai yang dikembalikan dari delegasi yang dipanggil atau null jika delegasi tidak memiliki nilai pengembalian.

Atribut

Pengecualian

priority sama dengan Inactive.

priority bukan prioritas yang valid.

methodadalah null.

Keterangan

arg bisa jadi null jika argumen tidak diperlukan

Di WPF, hanya utas yang membuat DispatcherObject dapat mengakses objek tersebut. Misalnya, utas latar belakang yang dipisahkan dari utas UI utama tidak dapat memperbarui konten yang Button dibuat pada utas UI. Agar utas latar belakang dapat mengakses properti Konten dari Button, utas latar belakang harus mendelegasikan pekerjaan ke Dispatcher yang terkait dengan utas UI. Ini dicapai dengan menggunakan atau InvokeBeginInvoke. Invoke sinkron dan BeginInvoke asinkron. Operasi ditambahkan ke antrean Dispatcher peristiwa pada yang ditentukan DispatcherPriority.

Invoke adalah operasi sinkron; oleh karena itu, kontrol tidak akan kembali ke objek panggilan sampai setelah panggilan balik kembali.

Berlaku untuk

Invoke(DispatcherPriority, Delegate, Object, Object[])

Menjalankan delegasi yang ditentukan pada prioritas yang ditentukan dengan argumen yang ditentukan secara sinkron pada utas yang Dispatcher terkait.

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method, System::Object ^ arg, ... cli::array <System::Object ^> ^ args);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, Delegate method, object arg, params object[] args);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * Delegate * obj * obj[] -> obj
Public Function Invoke (priority As DispatcherPriority, method As Delegate, arg As Object, ParamArray args As Object()) As Object

Parameter

priority
DispatcherPriority

Prioritas, relatif terhadap operasi lain yang tertunda dalam Dispatcher antrean peristiwa, yang dengannya metode yang ditentukan dipanggil.

method
Delegate

Delegasi ke metode yang mengambil beberapa argumen, yang didorong ke antrean Dispatcher peristiwa.

arg
Object

Objek untuk diteruskan sebagai argumen ke metode yang diberikan.

args
Object[]

Array objek untuk diteruskan sebagai argumen ke metode yang diberikan.

Mengembalikan

Nilai yang dikembalikan dari delegasi yang dipanggil atau null jika delegasi tidak memiliki nilai yang dikembalikan.

Atribut

Pengecualian

priority sama dengan Inactive.

priority bukan prioritas yang valid.

methodadalah null.

Keterangan

arg bisa jadi null jika argumen tidak diperlukan

Di WPF, hanya utas yang membuat DispatcherObject dapat mengakses objek tersebut. Misalnya, utas latar belakang yang dipisahkan dari utas UI utama tidak dapat memperbarui konten yang Button dibuat pada utas UI. Agar utas latar belakang dapat mengakses properti Konten dari Button, utas latar belakang harus mendelegasikan pekerjaan ke Dispatcher yang terkait dengan utas UI. Ini dicapai dengan menggunakan atau InvokeBeginInvoke. Invoke sinkron dan BeginInvoke asinkron. Operasi ditambahkan ke antrean Dispatcher peristiwa pada yang ditentukan DispatcherPriority.

Invoke adalah operasi sinkron; oleh karena itu, kontrol tidak akan kembali ke objek panggilan sampai setelah panggilan balik kembali.

Berlaku untuk

Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan)

Menjalankan yang ditentukan Action secara sinkron pada prioritas yang ditentukan pada utas yang Dispatcher dikaitkan dengannya.

public:
 void Invoke(Action ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken, TimeSpan timeout);
public void Invoke (Action callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken, TimeSpan timeout);
member this.Invoke : Action * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken * TimeSpan -> unit
Public Sub Invoke (callback As Action, priority As DispatcherPriority, cancellationToken As CancellationToken, timeout As TimeSpan)

Parameter

callback
Action

Delegasi Tindakan untuk dipanggil melalui dispatcher.

priority
DispatcherPriority

Prioritas yang menentukan urutan di mana panggilan balik yang ditentukan dipanggil relatif terhadap operasi tertunda lainnya di Dispatcher.

cancellationToken
CancellationToken

Objek yang menunjukkan apakah akan membatalkan tindakan.

timeout
TimeSpan

Jumlah waktu maksimum untuk menunggu operasi dimulai. Setelah operasi dimulai, operasi akan selesai sebelum metode ini kembali. Untuk menentukan tunggu tak terbatas, gunakan nilai -1. Dalam panggilan rangkaian yang sama, nilai negatif lainnya dikonversi menjadi -1, menghasilkan penantian tak terbatas. Dalam panggilan lintas utas ArgumentOutOfRangeException, nilai negatif lainnya melempar .

Pengecualian

callbackadalah null.

timeout adalah angka negatif selain -1, dan metode ini dipanggil di seluruh utas.

priority bukan prioritas yang valid.

Token pembatalan dibatalkan. Pengecualian ini disimpan ke dalam tugas yang dikembalikan.

Berlaku untuk

Invoke(DispatcherPriority, TimeSpan, Delegate)

Menjalankan delegasi yang ditentukan secara sinkron pada prioritas yang ditentukan dan dengan nilai batas waktu yang ditentukan pada utas yang Dispatcher dibuat.

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, TimeSpan timeout, Delegate ^ method);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, TimeSpan timeout, Delegate method);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * TimeSpan * Delegate -> obj
Public Function Invoke (priority As DispatcherPriority, timeout As TimeSpan, method As Delegate) As Object

Parameter

priority
DispatcherPriority

Prioritas, relatif terhadap operasi lain yang tertunda dalam Dispatcher antrean peristiwa, dengan metode yang ditentukan dipanggil.

timeout
TimeSpan

Jumlah waktu maksimum untuk menunggu operasi dimulai. Setelah operasi dimulai, operasi akan selesai sebelum metode ini kembali. Untuk menentukan tunggu tak terbatas, gunakan nilai -1. Dalam panggilan rangkaian yang sama, nilai negatif lainnya dikonversi menjadi -1, menghasilkan penantian tak terbatas. Dalam panggilan lintas utas ArgumentOutOfRangeException, nilai negatif lainnya melempar .

method
Delegate

Delegasi ke metode yang tidak mengambil argumen, yang didorong ke antrean Dispatcher peristiwa.

Mengembalikan

Nilai yang dikembalikan dari delegasi yang dipanggil atau null jika delegasi tidak memiliki nilai yang dikembalikan.

Atribut

Pengecualian

methodadalah null.

timeout adalah angka negatif selain -1, dan metode ini dipanggil di seluruh utas.

priority sama dengan Inactive.

priority bukan prioritas yang valid.

Keterangan

Di WPF, hanya utas yang membuat DispatcherObject dapat mengakses objek tersebut. Misalnya, utas latar belakang yang dipisahkan dari utas UI utama tidak dapat memperbarui konten yang Button dibuat pada utas UI. Agar utas latar belakang dapat mengakses properti Konten dari Button, utas latar belakang harus mendelegasikan pekerjaan ke Dispatcher yang terkait dengan utas UI. Ini dicapai dengan menggunakan atau InvokeBeginInvoke. Invoke sinkron dan BeginInvoke asinkron. Operasi ditambahkan ke antrean Dispatcher peristiwa pada yang ditentukan DispatcherPriority.

Invoke adalah operasi sinkron; oleh karena itu, kontrol tidak akan kembali ke objek panggilan sampai setelah panggilan balik kembali.

Berlaku untuk

Invoke(DispatcherPriority, Delegate, Object)

Menjalankan delegasi yang ditentukan pada prioritas yang ditentukan dengan argumen yang ditentukan secara sinkron pada utas yang Dispatcher terkait dengannya.

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method, System::Object ^ arg);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, Delegate method, object arg);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * Delegate * obj -> obj
Public Function Invoke (priority As DispatcherPriority, method As Delegate, arg As Object) As Object

Parameter

priority
DispatcherPriority

Prioritas, relatif terhadap operasi lain yang tertunda dalam Dispatcher antrean peristiwa, dengan metode yang ditentukan dipanggil.

method
Delegate

Delegasi ke metode yang mengambil satu argumen, yang didorong ke antrean Dispatcher peristiwa.

arg
Object

Objek untuk diteruskan sebagai argumen ke metode yang diberikan.

Mengembalikan

Nilai yang dikembalikan dari delegasi yang dipanggil atau null jika delegasi tidak memiliki nilai yang dikembalikan.

Atribut

Pengecualian

priority sama dengan Inactive.

priority bukan prioritas yang valid.

methodadalah null.

Keterangan

arg bisa jadi null jika argumen tidak diperlukan

Di WPF, hanya utas yang membuat DispatcherObject dapat mengakses objek tersebut. Misalnya, utas latar belakang yang dipisahkan dari utas UI utama tidak dapat memperbarui konten yang Button dibuat pada utas UI. Agar utas latar belakang dapat mengakses properti Konten dari Button, utas latar belakang harus mendelegasikan pekerjaan ke Dispatcher yang terkait dengan utas UI. Ini dicapai dengan menggunakan atau InvokeBeginInvoke. Invoke sinkron dan BeginInvoke asinkron. Operasi ditambahkan ke antrean Dispatcher peristiwa pada yang ditentukan DispatcherPriority.

Invoke adalah operasi sinkron; oleh karena itu, kontrol tidak akan kembali ke objek panggilan sampai setelah panggilan balik kembali.

Berlaku untuk

Invoke(Delegate, TimeSpan, DispatcherPriority, Object[])

Menjalankan delegasi yang ditentukan dalam rentang waktu yang ditentukan pada prioritas yang ditentukan dengan argumen yang ditentukan secara sinkron pada utas yang Dispatcher terkait.

public:
 System::Object ^ Invoke(Delegate ^ method, TimeSpan timeout, System::Windows::Threading::DispatcherPriority priority, ... cli::array <System::Object ^> ^ args);
public object Invoke (Delegate method, TimeSpan timeout, System.Windows.Threading.DispatcherPriority priority, params object[] args);
member this.Invoke : Delegate * TimeSpan * System.Windows.Threading.DispatcherPriority * obj[] -> obj
Public Function Invoke (method As Delegate, timeout As TimeSpan, priority As DispatcherPriority, ParamArray args As Object()) As Object

Parameter

method
Delegate

Delegasi ke metode yang mengambil parameter yang ditentukan dalam args, yang didorong ke antrean Dispatcher peristiwa.

timeout
TimeSpan

Jumlah waktu maksimum untuk menunggu operasi dimulai. Setelah operasi dimulai, operasi akan selesai sebelum metode ini kembali. Untuk menentukan tunggu tak terbatas, gunakan nilai -1. Dalam panggilan rangkaian yang sama, nilai negatif lainnya dikonversi menjadi -1, menghasilkan penantian tak terbatas. Dalam panggilan lintas utas ArgumentOutOfRangeException, nilai negatif lainnya melempar .

priority
DispatcherPriority

Prioritas, relatif terhadap operasi lain yang tertunda dalam Dispatcher antrean peristiwa, dengan metode yang ditentukan dipanggil.

args
Object[]

Array objek untuk diteruskan sebagai argumen ke metode yang diberikan. Dapat berupa null.

Mengembalikan

Nilai yang dikembalikan dari delegasi yang dipanggil atau null jika delegasi tidak memiliki nilai yang dikembalikan.

Pengecualian

methodadalah null.

timeout adalah angka negatif selain -1, dan metode ini dipanggil di seluruh utas.

priority sama dengan Inactive.

priority bukan prioritas yang valid.

Keterangan

Di WPF, hanya utas yang membuat DispatcherObject dapat mengakses objek tersebut. Misalnya, utas latar belakang yang dipisahkan dari utas UI utama tidak dapat memperbarui konten yang Button dibuat pada utas UI. Agar utas latar belakang dapat mengakses properti Konten dari Button, utas latar belakang harus mendelegasikan pekerjaan ke Dispatcher yang terkait dengan utas UI. Ini dicapai dengan menggunakan atau InvokeBeginInvoke. Invoke sinkron dan BeginInvoke asinkron. Operasi ditambahkan ke antrean Dispatcher peristiwa pada yang ditentukan DispatcherPriority.

Invoke adalah operasi sinkron; oleh karena itu, kontrol tidak akan kembali ke objek panggilan sampai setelah panggilan balik kembali.

Berlaku untuk

Invoke(Delegate, TimeSpan, Object[])

Menjalankan delegasi yang ditentukan dalam rentang waktu yang ditentukan pada prioritas yang ditentukan dengan argumen yang ditentukan secara sinkron pada utas yang Dispatcher terkait.

public:
 System::Object ^ Invoke(Delegate ^ method, TimeSpan timeout, ... cli::array <System::Object ^> ^ args);
public object Invoke (Delegate method, TimeSpan timeout, params object[] args);
member this.Invoke : Delegate * TimeSpan * obj[] -> obj
Public Function Invoke (method As Delegate, timeout As TimeSpan, ParamArray args As Object()) As Object

Parameter

method
Delegate

Delegasi ke metode yang mengambil parameter yang ditentukan dalam args, yang didorong ke antrean Dispatcher peristiwa.

timeout
TimeSpan

Jumlah waktu maksimum untuk menunggu operasi dimulai. Namun, setelah operasi dimulai, operasi akan selesai sebelum metode ini kembali. Untuk menentukan tunggu tak terbatas, gunakan nilai -1. Dalam panggilan rangkaian yang sama, nilai negatif lainnya dikonversi menjadi -1, menghasilkan penantian tak terbatas. Dalam panggilan lintas utas ArgumentOutOfRangeException, nilai negatif lainnya melempar .

args
Object[]

Array objek untuk diteruskan sebagai argumen ke metode yang diberikan. null Bisa jadi jika tidak ada argumen yang diperlukan.

Mengembalikan

Nilai yang dikembalikan dari delegasi yang dipanggil atau null jika delegasi tidak memiliki nilai yang dikembalikan.

Pengecualian

methodadalah null.

timeout adalah angka negatif selain -1, dan Anda memanggil di seluruh utas.

Keterangan

Di WPF, hanya utas yang membuat DispatcherObject dapat mengakses objek tersebut. Misalnya, utas latar belakang yang dipisahkan dari utas UI utama tidak dapat memperbarui konten yang Button dibuat pada utas UI. Agar utas latar belakang dapat mengakses properti Konten dari Button, utas latar belakang harus mendelegasikan pekerjaan ke Dispatcher yang terkait dengan utas UI. Ini dicapai dengan menggunakan atau InvokeBeginInvoke. Invoke sinkron dan BeginInvoke asinkron. Operasi ditambahkan ke antrean Dispatcher peristiwa pada yang ditentukan DispatcherPriority.

Invoke adalah operasi sinkron; oleh karena itu, kontrol tidak akan kembali ke objek panggilan sampai setelah panggilan balik kembali.

Berlaku untuk

Invoke(Action, DispatcherPriority, CancellationToken)

Menjalankan yang ditentukan Action secara sinkron pada prioritas yang ditentukan pada utas yang Dispatcher dikaitkan dengannya.

public:
 void Invoke(Action ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken);
public void Invoke (Action callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken);
member this.Invoke : Action * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken -> unit
Public Sub Invoke (callback As Action, priority As DispatcherPriority, cancellationToken As CancellationToken)

Parameter

callback
Action

Delegasi untuk memanggil melalui dispatcher.

priority
DispatcherPriority

Prioritas yang menentukan urutan di mana panggilan balik yang ditentukan dipanggil relatif terhadap operasi tertunda lainnya di Dispatcher.

cancellationToken
CancellationToken

Objek yang menunjukkan apakah akan membatalkan tindakan.

Pengecualian

Token pembatalan dibatalkan. Pengecualian ini disimpan ke dalam tugas yang dikembalikan.

Berlaku untuk

Invoke(DispatcherPriority, Delegate)

Menjalankan delegasi yang ditentukan secara sinkron pada prioritas yang ditentukan pada utas yang Dispatcher terkait dengannya.

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, Delegate method);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * Delegate -> obj
Public Function Invoke (priority As DispatcherPriority, method As Delegate) As Object

Parameter

priority
DispatcherPriority

Prioritas di mana metode yang ditentukan dipanggil, relatif terhadap operasi lain yang tertunda dalam Dispatcher antrean peristiwa.

method
Delegate

Delegasi ke metode yang tidak mengambil argumen, yang didorong ke antrean Dispatcher peristiwa.

Mengembalikan

Nilai yang dikembalikan dari delegasi yang dipanggil atau null jika delegasi tidak memiliki nilai yang dikembalikan.

Atribut

Pengecualian

priority sama dengan Inactive.

priority bukan prioritas yang valid.

methodadalah null.

Contoh

Contoh berikut menempatkan delegasi ke Dispatcher dalam menggunakan NormalInvoke.

// Places the delegate onto the UI Thread's Dispatcher
private void timer_Elapsed(object sender, ElapsedEventArgs e)
{
    // Place delegate on the Dispatcher.
    this.Dispatcher.Invoke(DispatcherPriority.Normal,
        new TimerDispatcherDelegate(TimerWorkItem));
}
' Places the delegate onto the UI Thread's Dispatcher
Private Sub timer_Elapsed(ByVal sender As Object, ByVal e As ElapsedEventArgs)
    ' Place delegate on the Dispatcher.
    Me.Dispatcher.Invoke(DispatcherPriority.Normal, New TimerDispatcherDelegate(AddressOf TimerWorkItem))
End Sub

Keterangan

Di WPF, hanya utas yang membuat DispatcherObject dapat mengakses objek tersebut. Misalnya, utas latar belakang yang dipisahkan dari utas UI utama tidak dapat memperbarui konten yang Button dibuat pada utas UI. Agar utas latar belakang dapat mengakses properti Konten dari Button, utas latar belakang harus mendelegasikan pekerjaan ke Dispatcher yang terkait dengan utas UI. Ini dicapai dengan menggunakan atau InvokeBeginInvoke. Invoke sinkron dan BeginInvoke asinkron. Operasi ditambahkan ke antrean Dispatcher peristiwa pada yang ditentukan DispatcherPriority.

Invoke adalah operasi sinkron; oleh karena itu, kontrol tidak akan kembali ke objek panggilan sampai setelah panggilan balik kembali.

Berlaku untuk

Invoke(Delegate, Object[])

Menjalankan delegasi yang ditentukan dengan argumen yang ditentukan secara sinkron pada utas yang Dispatcher terkait dengannya.

public:
 System::Object ^ Invoke(Delegate ^ method, ... cli::array <System::Object ^> ^ args);
public object Invoke (Delegate method, params object[] args);
member this.Invoke : Delegate * obj[] -> obj
Public Function Invoke (method As Delegate, ParamArray args As Object()) As Object

Parameter

method
Delegate

Delegasi ke metode yang mengambil parameter yang ditentukan dalam args, yang didorong ke antrean Dispatcher peristiwa.

args
Object[]

Array objek untuk diteruskan sebagai argumen ke metode yang diberikan. Dapat berupa null.

Mengembalikan

Nilai yang dikembalikan dari delegasi yang dipanggil atau null jika delegasi tidak memiliki nilai yang dikembalikan.

Keterangan

Di WPF, hanya utas yang membuat DispatcherObject dapat mengakses objek tersebut. Misalnya, utas latar belakang yang dipisahkan dari utas UI utama tidak dapat memperbarui konten yang Button dibuat pada utas UI. Agar utas latar belakang dapat mengakses properti Konten dari Button, utas latar belakang harus mendelegasikan pekerjaan ke Dispatcher yang terkait dengan utas UI. Ini dicapai dengan menggunakan atau InvokeBeginInvoke. Invoke sinkron dan BeginInvoke asinkron. Operasi ditambahkan ke antrean Dispatcher peristiwa pada yang ditentukan DispatcherPriority.

Invoke adalah operasi sinkron; oleh karena itu, kontrol tidak akan kembali ke objek panggilan sampai setelah panggilan balik kembali.

Berlaku untuk

Invoke(Action, DispatcherPriority)

Menjalankan yang ditentukan Action secara sinkron pada prioritas yang ditentukan pada utas yang Dispatcher dikaitkan dengannya.

public:
 void Invoke(Action ^ callback, System::Windows::Threading::DispatcherPriority priority);
public void Invoke (Action callback, System.Windows.Threading.DispatcherPriority priority);
member this.Invoke : Action * System.Windows.Threading.DispatcherPriority -> unit
Public Sub Invoke (callback As Action, priority As DispatcherPriority)

Parameter

callback
Action

Delegasi untuk memanggil melalui dispatcher.

priority
DispatcherPriority

Prioritas yang menentukan urutan di mana panggilan balik yang ditentukan dipanggil relatif terhadap operasi tertunda lainnya di Dispatcher.

Berlaku untuk

Invoke(Action)

Menjalankan yang ditentukan Action secara sinkron pada utas yang Dispatcher terkait dengannya.

public:
 void Invoke(Action ^ callback);
public void Invoke (Action callback);
member this.Invoke : Action -> unit
Public Sub Invoke (callback As Action)

Parameter

callback
Action

Delegasi untuk memanggil melalui dispatcher.

Keterangan

Prioritas defaultnya adalah DispatcherPriority.Send.

Berlaku untuk

Invoke(Delegate, DispatcherPriority, Object[])

Menjalankan delegasi yang ditentukan pada prioritas yang ditentukan dengan argumen yang ditentukan secara sinkron pada utas yang Dispatcher terkait.

public:
 System::Object ^ Invoke(Delegate ^ method, System::Windows::Threading::DispatcherPriority priority, ... cli::array <System::Object ^> ^ args);
public object Invoke (Delegate method, System.Windows.Threading.DispatcherPriority priority, params object[] args);
member this.Invoke : Delegate * System.Windows.Threading.DispatcherPriority * obj[] -> obj
Public Function Invoke (method As Delegate, priority As DispatcherPriority, ParamArray args As Object()) As Object

Parameter

method
Delegate

Delegasi ke metode yang mengambil parameter yang ditentukan dalam args, yang didorong ke antrean Dispatcher peristiwa.

priority
DispatcherPriority

Prioritas di mana metode yang ditentukan dipanggil, relatif terhadap operasi lain yang tertunda dalam Dispatcher antrean peristiwa.

args
Object[]

Array objek untuk diteruskan sebagai argumen ke metode yang diberikan. Dapat berupa null.

Mengembalikan

Nilai yang dikembalikan dari delegasi yang dipanggil atau null jika delegasi tidak memiliki nilai yang dikembalikan.

Keterangan

Di WPF, hanya utas yang membuat DispatcherObject dapat mengakses objek tersebut. Misalnya, utas latar belakang yang dipisahkan dari utas UI utama tidak dapat memperbarui konten yang Button dibuat pada utas UI. Agar utas latar belakang dapat mengakses properti Konten dari Button, utas latar belakang harus mendelegasikan pekerjaan ke Dispatcher yang terkait dengan utas UI. Ini dicapai dengan menggunakan atau InvokeBeginInvoke. Invoke sinkron dan BeginInvoke asinkron. Operasi ditambahkan ke antrean Dispatcher peristiwa pada yang ditentukan DispatcherPriority.

Invoke adalah operasi sinkron; oleh karena itu, kontrol tidak akan kembali ke objek panggilan sampai setelah panggilan balik kembali.

Berlaku untuk

Invoke<TResult>(Func<TResult>)

Menjalankan yang ditentukan Func<TResult> secara sinkron pada utas yang Dispatcher terkait dengannya.

public:
generic <typename TResult>
 TResult Invoke(Func<TResult> ^ callback);
public TResult Invoke<TResult> (Func<TResult> callback);
member this.Invoke : Func<'Result> -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult)) As TResult

Jenis parameter

TResult

Jenis nilai yang dikembalikan dari delegasi yang ditentukan.

Parameter

callback
Func<TResult>

Delegasi untuk memanggil melalui dispatcher.

Mengembalikan

TResult

Nilai yang dikembalikan oleh callback.

Berlaku untuk

Invoke<TResult>(Func<TResult>, DispatcherPriority)

Menjalankan yang ditentukan Func<TResult> secara sinkron pada prioritas yang ditentukan pada utas yang Dispatcher dikaitkan dengannya.

public:
generic <typename TResult>
 TResult Invoke(Func<TResult> ^ callback, System::Windows::Threading::DispatcherPriority priority);
public TResult Invoke<TResult> (Func<TResult> callback, System.Windows.Threading.DispatcherPriority priority);
member this.Invoke : Func<'Result> * System.Windows.Threading.DispatcherPriority -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult), priority As DispatcherPriority) As TResult

Jenis parameter

TResult

Jenis nilai yang dikembalikan dari delegasi yang ditentukan.

Parameter

callback
Func<TResult>

Delegasi untuk memanggil melalui dispatcher.

priority
DispatcherPriority

Prioritas yang menentukan urutan di mana panggilan balik yang ditentukan dipanggil relatif terhadap operasi tertunda lainnya di Dispatcher.

Mengembalikan

TResult

Nilai yang dikembalikan oleh callback.

Berlaku untuk

Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken)

Menjalankan yang ditentukan Func<TResult> secara sinkron pada prioritas yang ditentukan pada utas yang Dispatcher dikaitkan dengannya.

public:
generic <typename TResult>
 TResult Invoke(Func<TResult> ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken);
public TResult Invoke<TResult> (Func<TResult> callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken);
member this.Invoke : Func<'Result> * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult), priority As DispatcherPriority, cancellationToken As CancellationToken) As TResult

Jenis parameter

TResult

Jenis nilai yang dikembalikan dari delegasi yang ditentukan.

Parameter

callback
Func<TResult>

Delegasi untuk memanggil melalui dispatcher.

priority
DispatcherPriority

Prioritas yang menentukan urutan di mana panggilan balik yang ditentukan dipanggil relatif terhadap operasi tertunda lainnya di Dispatcher.

cancellationToken
CancellationToken

Objek yang menunjukkan apakah akan membatalkan operasi.

Mengembalikan

TResult

Nilai yang dikembalikan oleh callback.

Pengecualian

Token pembatalan dibatalkan. Pengecualian ini disimpan ke dalam tugas yang dikembalikan.

Berlaku untuk

Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken, TimeSpan)

Menjalankan yang ditentukan Func<TResult> secara sinkron pada prioritas yang ditentukan pada utas yang Dispatcher dikaitkan dengannya.

public:
generic <typename TResult>
 TResult Invoke(Func<TResult> ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken, TimeSpan timeout);
public TResult Invoke<TResult> (Func<TResult> callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken, TimeSpan timeout);
member this.Invoke : Func<'Result> * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken * TimeSpan -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult), priority As DispatcherPriority, cancellationToken As CancellationToken, timeout As TimeSpan) As TResult

Jenis parameter

TResult

Jenis nilai yang dikembalikan dari delegasi yang ditentukan.

Parameter

callback
Func<TResult>

Delegasi untuk memanggil melalui dispatcher.

priority
DispatcherPriority

Prioritas yang menentukan urutan di mana panggilan balik yang ditentukan dipanggil relatif terhadap operasi tertunda lainnya di Dispatcher.

cancellationToken
CancellationToken

Objek yang menunjukkan apakah akan membatalkan operasi.

timeout
TimeSpan

Jumlah waktu maksimum untuk menunggu operasi dimulai. Setelah operasi dimulai, operasi akan selesai sebelum metode ini kembali. Untuk menentukan tunggu tak terbatas, gunakan nilai -1. Dalam panggilan rangkaian yang sama, nilai negatif lainnya dikonversi menjadi -1, menghasilkan penantian tak terbatas. Dalam panggilan lintas utas ArgumentOutOfRangeException, nilai negatif lainnya melempar .

Mengembalikan

TResult

Nilai yang dikembalikan oleh callback.

Pengecualian

callbackadalah null.

timeout adalah angka negatif selain -1, dan metode ini dipanggil di seluruh utas.

priority bukan prioritas yang valid.

Token pembatalan dibatalkan. Pengecualian ini disimpan ke dalam tugas yang dikembalikan.

Berlaku untuk