Dispatcher.Invoke Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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.
priority
tidak valid DispatcherPriority.
method
adalah 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.
method
adalah 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.
method
adalah 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
callback
adalah 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
method
adalah 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.
method
adalah 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
method
adalah 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
method
adalah 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.
method
adalah 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
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
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
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
Nilai yang dikembalikan oleh callback
.
Pengecualian
callback
adalah 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.