Dispatcher.BeginInvoke Metode

Definisi

Menjalankan delegasi secara asinkron pada utas yang Dispatcher terkait dengannya.

Overload

Nama Deskripsi
BeginInvoke(Delegate, Object[])

Menjalankan delegasi yang ditentukan secara asinkron dengan argumen yang ditentukan pada utas tempat Dispatcher pembuatannya.

BeginInvoke(DispatcherPriority, Delegate)

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

BeginInvoke(Delegate, DispatcherPriority, Object[])

Menjalankan delegasi yang ditentukan secara asinkron dengan argumen yang ditentukan, pada prioritas yang ditentukan, pada utas tempat Dispatcher dibuatnya.

BeginInvoke(DispatcherPriority, Delegate, Object)

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

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

Menjalankan delegasi yang ditentukan secara asinkron pada prioritas yang ditentukan dan dengan array argumen yang ditentukan pada utas yang Dispatcher terkait dengannya.

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 , Buttonutas 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.

BeginInvoke asinkron; oleh karena itu, kontrol segera kembali ke objek panggilan setelah dipanggil.

BeginInvoke DispatcherOperation mengembalikan objek yang dapat digunakan untuk berinteraksi dengan delegasi saat delegasi berada dalam antrean peristiwa.

Objek DispatcherOperation yang dikembalikan oleh BeginInvoke dapat digunakan dalam beberapa cara untuk berinteraksi dengan delegasi yang ditentukan, seperti:

  • Mengubah DispatcherPriority delegasi karena sedang menunggu eksekusi dalam antrean peristiwa.

  • Menghapus delegasi dari antrean peristiwa.

  • Menunggu delegasi kembali.

  • Mendapatkan nilai yang dikembalikan delegasi setelah dijalankan.

Jika beberapa BeginInvoke panggilan dilakukan pada saat yang sama DispatcherPriority, panggilan akan dijalankan dalam urutan panggilan dilakukan.

Jika BeginInvoke dipanggil pada Dispatcher yang telah dimatikan, properti status yang dikembalikan DispatcherOperation diatur ke Aborted.

BeginInvoke(Delegate, Object[])

Menjalankan delegasi yang ditentukan secara asinkron dengan argumen yang ditentukan pada utas tempat Dispatcher pembuatannya.

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

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. Bisa jadi null.

Mengembalikan

Objek, yang dikembalikan segera setelah BeginInvoke dipanggil, yang dapat digunakan untuk berinteraksi dengan delegasi karena sedang menunggu eksekusi dalam antrean peristiwa.

Keterangan

Objek DispatcherOperation yang dikembalikan oleh BeginInvoke dapat digunakan dalam beberapa cara untuk berinteraksi dengan delegasi yang ditentukan, seperti:

  • Mengubah DispatcherPriority delegasi karena sedang menunggu eksekusi dalam antrean peristiwa.

  • Menghapus delegasi dari antrean peristiwa.

  • Menunggu delegasi kembali.

  • Mendapatkan nilai yang dikembalikan delegasi setelah dijalankan.

BeginInvoke asinkron; oleh karena itu, kontrol segera kembali ke objek panggilan setelah dipanggil.

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 , Buttonutas 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.

Jika BeginInvoke dipanggil pada Dispatcher yang telah dimatikan, properti status yang dikembalikan DispatcherOperation diatur ke Aborted.

Berlaku untuk

BeginInvoke(DispatcherPriority, Delegate)

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

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

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 tidak mengambil argumen, yang didorong ke antrean Dispatcher peristiwa.

Mengembalikan

Objek, yang dikembalikan segera setelah BeginInvoke dipanggil, yang dapat digunakan untuk berinteraksi dengan delegasi karena sedang menunggu eksekusi dalam antrean peristiwa.

Atribut

Pengecualian

method adalah null.

Contoh

Contoh berikut menunjukkan cara menempatkan operasi ke Dispatcher. Untuk kode sumber lengkap contoh ini, lihat AplikasiSingle-Threaded dengan Sampel Perhitungan Long-Running.

Pertama, delegasi dibuat yang tidak menerima argumen.

public delegate void NextPrimeDelegate();
Public Delegate Sub NextPrimeDelegate()

Selanjutnya, BeginInvoke(DispatcherPriority, Delegate) dipanggil. Karena setiap DispatcherObject memiliki properti yang mengembalikannya Dispatcher dikaitkan dengan, yang diinginkan Dispatcher diperoleh dengan mengkueri DispatcherObject, dalam hal ini bernama ButtonstartStopButton. Panggilan untuk BeginInvoke(DispatcherPriority, Delegate) mengambil dua parameter: prioritas, yang diatur ke DispatcherPriority.Normal, dan panggilan balik, yang diteruskan melalui instans delegasi NextPrimeDelegate.

startStopButton.Dispatcher.BeginInvoke(
    DispatcherPriority.Normal,
    new NextPrimeDelegate(CheckNextNumber));
startStopButton.Dispatcher.BeginInvoke(DispatcherPriority.Normal, New NextPrimeDelegate(AddressOf CheckNextNumber))

Keterangan

Jika beberapa BeginInvoke panggilan dilakukan pada saat yang sama DispatcherPriority, panggilan akan dijalankan dalam urutan panggilan dilakukan.

BeginInvoke DispatcherOperation mengembalikan objek yang dapat digunakan untuk berinteraksi dengan delegasi saat delegasi berada dalam antrean peristiwa.

Objek DispatcherOperation yang dikembalikan oleh BeginInvoke dapat digunakan dalam beberapa cara untuk berinteraksi dengan delegasi yang ditentukan, seperti:

  • Mengubah DispatcherPriority delegasi karena sedang menunggu eksekusi dalam antrean peristiwa.

  • Menghapus delegasi dari antrean peristiwa.

  • Menunggu delegasi kembali.

  • Mendapatkan nilai yang dikembalikan delegasi setelah dijalankan.

BeginInvoke asinkron; oleh karena itu, kontrol segera kembali ke objek panggilan setelah dipanggil.

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 , Buttonutas 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.

Jika BeginInvoke dipanggil pada Dispatcher yang telah dimatikan, properti status yang dikembalikan DispatcherOperation diatur ke Aborted.

Lihat juga

Berlaku untuk

BeginInvoke(Delegate, DispatcherPriority, Object[])

Menjalankan delegasi yang ditentukan secara asinkron dengan argumen yang ditentukan, pada prioritas yang ditentukan, pada utas tempat Dispatcher dibuatnya.

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

Parameter

method
Delegate

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

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. Bisa jadi null.

Mengembalikan

Objek, yang dikembalikan segera setelah BeginInvoke dipanggil, yang dapat digunakan untuk berinteraksi dengan delegasi karena sedang menunggu eksekusi dalam antrean peristiwa.

Keterangan

Objek DispatcherOperation yang dikembalikan oleh BeginInvoke dapat digunakan dalam beberapa cara untuk berinteraksi dengan delegasi yang ditentukan, seperti:

  • Mengubah DispatcherPriority delegasi karena sedang menunggu eksekusi dalam antrean peristiwa.

  • Menghapus delegasi dari antrean peristiwa.

  • Menunggu delegasi kembali.

  • Mendapatkan nilai yang dikembalikan delegasi setelah dijalankan.

BeginInvoke asinkron; oleh karena itu, kontrol segera kembali ke objek panggilan setelah dipanggil.

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 , Buttonutas 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.

Jika BeginInvoke dipanggil pada Dispatcher yang telah dimatikan, properti status yang dikembalikan DispatcherOperation diatur ke Aborted.

Berlaku untuk

BeginInvoke(DispatcherPriority, Delegate, Object)

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

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

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 yang akan diteruskan sebagai argumen ke metode yang ditentukan.

Mengembalikan

Objek, yang dikembalikan segera setelah BeginInvoke dipanggil, yang dapat digunakan untuk berinteraksi dengan delegasi karena sedang menunggu eksekusi dalam antrean peristiwa.

Atribut

Pengecualian

method adalah null.

Contoh

Contoh berikut menunjukkan cara menempatkan operasi ke Dispatcher.

Pertama, delegasi dibuat yang menerima satu argumen, dalam hal ini string.

private delegate void OneArgDelegate(String arg);
Private Delegate Sub OneArgDelegate(ByVal arg As String)

Selanjutnya, BeginInvoke(DispatcherPriority, Delegate, Object) dipanggil. Karena setiap DispatcherObject memiliki properti yang mengembalikannya Dispatcher dikaitkan dengan, yang diinginkan Dispatcher diperoleh dengan mengkueri DispatcherObject, dalam hal ini bernama GridtomorrowsWeather. Panggilan untuk BeginInvoke(DispatcherPriority, Delegate, Object) mengambil tiga parameter: prioritas, yang diatur ke DispatcherPriority.Normal; panggilan balik, yang diteruskan melalui instans delegasi OneArgDelegate; dan string bernama weather, yang merupakan argumen untuk panggilan balik.

// Schedule the update function in the UI thread.
tomorrowsWeather.Dispatcher.BeginInvoke(
    System.Windows.Threading.DispatcherPriority.Normal,
    new OneArgDelegate(UpdateUserInterface), 
    weather);
' Schedule the update function in the UI thread.
tomorrowsWeather.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal, New OneArgDelegate(AddressOf UpdateUserInterface), weather)

Keterangan

arg bisa null jika tidak ada argumen yang diperlukan.

BeginInvoke DispatcherOperation mengembalikan objek yang dapat digunakan untuk berinteraksi dengan delegasi saat delegasi berada dalam antrean peristiwa.

Objek DispatcherOperation yang dikembalikan oleh BeginInvoke dapat digunakan dalam beberapa cara untuk berinteraksi dengan delegasi yang ditentukan, seperti:

  • Mengubah DispatcherPriority delegasi karena sedang menunggu eksekusi dalam antrean peristiwa.

  • Menghapus delegasi dari antrean peristiwa.

  • Menunggu delegasi kembali.

  • Mendapatkan nilai yang dikembalikan delegasi setelah dijalankan.

BeginInvoke asinkron; oleh karena itu, kontrol segera kembali ke objek panggilan setelah dipanggil.

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 Buttonkonten , 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.

Jika beberapa BeginInvoke panggilan dilakukan pada saat yang sama DispatcherPriority, panggilan akan dijalankan dalam urutan panggilan dilakukan.

Jika BeginInvoke dipanggil pada Dispatcher yang telah dimatikan, properti status yang dikembalikan DispatcherOperation diatur ke Aborted.

Lihat juga

Berlaku untuk

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

Menjalankan delegasi yang ditentukan secara asinkron pada prioritas yang ditentukan dan dengan array argumen yang ditentukan pada utas yang Dispatcher terkait dengannya.

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

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 beberapa argumen, yang didorong ke antrean Dispatcher peristiwa.

arg
Object

Objek yang akan diteruskan sebagai argumen ke metode yang ditentukan.

args
Object[]

Array objek untuk diteruskan sebagai argumen ke metode yang ditentukan.

Mengembalikan

Objek, yang dikembalikan segera setelah BeginInvoke dipanggil, yang dapat digunakan untuk berinteraksi dengan delegasi karena sedang menunggu eksekusi dalam Dispatcher antrean.

Atribut

Pengecualian

method adalah null.

DispatcherPriority bukan prioritas yang valid.

Keterangan

Parameter arg dapat jika null tidak ada argumen yang diperlukan.

BeginInvoke DispatcherOperation mengembalikan objek yang dapat digunakan untuk berinteraksi dengan delegasi saat delegasi berada dalam antrean peristiwa.

Objek DispatcherOperation yang dikembalikan oleh BeginInvoke dapat digunakan dalam beberapa cara untuk berinteraksi dengan delegasi yang ditentukan, seperti:

  • Mengubah DispatcherPriority delegasi karena sedang menunggu eksekusi dalam antrean peristiwa.

  • Menghapus delegasi dari antrean peristiwa.

  • Menunggu delegasi kembali.

  • Mendapatkan nilai yang dikembalikan delegasi setelah dijalankan.

BeginInvoke asinkron; oleh karena itu, kontrol segera kembali ke objek panggilan setelah dipanggil.

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 , Buttonutas 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.

Jika beberapa BeginInvoke panggilan dilakukan pada saat yang sama DispatcherPriority, panggilan akan dijalankan dalam urutan panggilan dilakukan.

Jika BeginInvoke dipanggil pada Dispatcher yang telah dimatikan, properti status yang dikembalikan DispatcherOperation diatur ke Aborted.

Lihat juga

Berlaku untuk