Dispatcher.BeginInvoke Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
İlişkili olduğu iş parçacığında zaman uyumsuz olarak bir temsilci yürütür Dispatcher .
Aşırı Yüklemeler
BeginInvoke(Delegate, Object[]) |
Belirtilen temsilciyi, oluşturulduğu iş parçacığında Dispatcher belirtilen bağımsız değişkenlerle zaman uyumsuz olarak yürütür. |
BeginInvoke(DispatcherPriority, Delegate) |
Belirtilen temsilciyi, ilişkili olduğu iş parçacığında Dispatcher belirtilen önceliğe göre zaman uyumsuz olarak yürütür. |
BeginInvoke(Delegate, DispatcherPriority, Object[]) |
Belirtilen temsilciyi, oluşturulduğu iş parçacığında Dispatcher belirtilen önceliğe göre belirtilen bağımsız değişkenlerle zaman uyumsuz olarak yürütür. |
BeginInvoke(DispatcherPriority, Delegate, Object) |
Belirtilen temsilciyi belirtilen önceliğe ve ilişkili iş parçacığında Dispatcher belirtilen bağımsız değişkenle zaman uyumsuz olarak yürütür. |
BeginInvoke(DispatcherPriority, Delegate, Object, Object[]) |
Belirtilen temsilciyi belirtilen önceliğe ve ilişkili iş parçacığındaki Dispatcher belirtilen bağımsız değişken dizisiyle zaman uyumsuz olarak yürütür. |
Açıklamalar
WPF'de yalnızca bir DispatcherObject oluşturan iş parçacığı bu nesneye erişebilir. Örneğin, ana kullanıcı arabirimi iş parçacığından ayrılan bir arka plan iş parçacığı, kullanıcı arabirimi iş parçacığında oluşturulan bir Button öğesinin içeriğini güncelleştiremez. Arka plan iş parçacığının öğesinin Content özelliğine erişebilmesi Buttoniçin, arka plan iş parçacığının ui iş parçacığıyla ilişkili iş parçacığına işi devretmesi Dispatcher gerekir. Bu, veya BeginInvokekullanılarak Invoke gerçekleştirilir. Invoke zaman uyumludur ve BeginInvoke zaman uyumsuzdur. İşlem belirtilen DispatcherPrioritykonumundaki olay kuyruğuna Dispatcher eklenir.
BeginInvoke zaman uyumsuzdur; bu nedenle, denetim çağrıldıktan hemen sonra çağıran nesneye döner.
BeginInvoke , temsilci olay kuyruğundayken temsilciyle etkileşim kurmak için kullanılabilecek bir DispatcherOperation nesne döndürür.
DispatcherOperation tarafından BeginInvoke döndürülen nesne, belirtilen temsilciyle etkileşim kurmak için aşağıdakiler gibi çeşitli şekillerde kullanılabilir:
Temsilcinin DispatcherPriority olay kuyruğunda yürütmeyi bekliyor olarak değiştirme.
Temsilci olay kuyruğundan kaldırılıyor.
Temsilcinin geri dönmesi bekleniyor.
Temsilcinin yürütüldükten sonra döndürdüğü değeri alma.
Aynı DispatcherPriorityanda birden çok BeginInvoke çağrı yapılırsa, bunlar çağrıların yapıldığı sırayla yürütülür.
Kapatılmış bir Dispatcher üzerinde çağrılırsaBeginInvoke, döndürülen DispatcherOperation öğesinin durum özelliği olarak Abortedayarlanır.
BeginInvoke(Delegate, Object[])
Belirtilen temsilciyi, oluşturulduğu iş parçacığında Dispatcher belirtilen bağımsız değişkenlerle zaman uyumsuz olarak yürütür.
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
Parametreler
- method
- Delegate
içinde belirtilen args
parametreleri alan ve olay kuyruğuna gönderilen yöntemin Dispatcher temsilcisi.
- args
- Object[]
Verilen yönteme bağımsız değişken olarak geçirecek bir nesne dizisi. olabilir null
.
Döndürülenler
Çağrıldıktan hemen sonra BeginInvoke döndürülen ve olay kuyruğunda yürütmeyi bekleyen temsilciyle etkileşim kurmak için kullanılabilecek bir nesne.
Açıklamalar
DispatcherOperation tarafından BeginInvoke döndürülen nesne, belirtilen temsilciyle etkileşim kurmak için aşağıdakiler gibi çeşitli şekillerde kullanılabilir:
Temsilcinin DispatcherPriority olay kuyruğunda yürütmeyi bekliyor olarak değiştirme.
Temsilci olay kuyruğundan kaldırılıyor.
Temsilcinin geri dönmesi bekleniyor.
Temsilcinin yürütüldükten sonra döndürdüğü değeri alma.
BeginInvoke zaman uyumsuzdur; bu nedenle, denetim çağrıldıktan hemen sonra çağıran nesneye döner.
WPF'de yalnızca bir DispatcherObject oluşturan iş parçacığı bu nesneye erişebilir. Örneğin, ana kullanıcı arabirimi iş parçacığından ayrılan bir arka plan iş parçacığı, kullanıcı arabirimi iş parçacığında oluşturulan bir Button öğesinin içeriğini güncelleştiremez. Arka plan iş parçacığının öğesinin Content özelliğine erişebilmesi Buttoniçin, arka plan iş parçacığının ui iş parçacığıyla ilişkili iş parçacığına işi devretmesi Dispatcher gerekir. Bu, veya BeginInvokekullanılarak Invoke gerçekleştirilir. Invoke zaman uyumludur ve BeginInvoke zaman uyumsuzdur. İşlem belirtilen DispatcherPrioritykonumundaki olay kuyruğuna Dispatcher eklenir.
Kapatılmış bir Dispatcher üzerinde çağrılırsaBeginInvoke, döndürülen DispatcherOperation öğesinin durum özelliği olarak Abortedayarlanır.
Şunlara uygulanır
BeginInvoke(DispatcherPriority, Delegate)
Belirtilen temsilciyi, ilişkili olduğu iş parçacığında Dispatcher belirtilen önceliğe göre zaman uyumsuz olarak yürütür.
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
Parametreler
- priority
- DispatcherPriority
Belirtilen yöntemin çağrıldığı olay kuyruğundaki Dispatcher diğer bekleyen işlemlere göre öncelik.
- method
- Delegate
Olay kuyruğuna gönderilen bağımsız değişken içermeyen bir yöntemin Dispatcher temsilcisi.
Döndürülenler
Çağrıldıktan hemen sonra BeginInvoke döndürülen ve olay kuyruğunda yürütmeyi bekleyen temsilciyle etkileşim kurmak için kullanılabilecek bir nesne.
- Öznitelikler
Özel durumlar
method
, null
değeridir.
priority
geçerli DispatcherPrioritybir değil.
Örnekler
Aşağıdaki örnek, bir işlemi üzerine nasıl yerleştireceklerini Dispatchergösterir. Bu örneğin tam kaynak kodu için bkz. Long-Running Hesaplama Örneği ile Tek İş Parçacıklı Uygulama.
İlk olarak, bağımsız değişken kabul eden bir temsilci oluşturulur.
public delegate void NextPrimeDelegate();
Public Delegate Sub NextPrimeDelegate()
Ardından, BeginInvoke(DispatcherPriority, Delegate) çağrılır. Her DispatcherObject öğesinin Dispatcher ilişkili olduğu öğesini döndüren bir özelliği olduğundan, istenen Dispatcher , bu durumda adlandırılmış startStopButton
bir Button sorgulanarak DispatcherObjectelde edilir. çağrısı BeginInvoke(DispatcherPriority, Delegate) iki parametre alır: olarak ayarlanan DispatcherPriority.Normalöncelik ve temsilcinin NextPrimeDelegate
bir örneği aracılığıyla geçirilen geri çağırma.
startStopButton.Dispatcher.BeginInvoke(
DispatcherPriority.Normal,
new NextPrimeDelegate(CheckNextNumber));
startStopButton.Dispatcher.BeginInvoke(DispatcherPriority.Normal, New NextPrimeDelegate(AddressOf CheckNextNumber))
Açıklamalar
Aynı DispatcherPriorityanda birden çok BeginInvoke çağrı yapılırsa, bunlar çağrıların yapıldığı sırayla yürütülür.
BeginInvoke , temsilci olay kuyruğundayken temsilciyle etkileşim kurmak için kullanılabilecek bir DispatcherOperation nesne döndürür.
DispatcherOperation tarafından BeginInvoke döndürülen nesne, belirtilen temsilciyle etkileşim kurmak için aşağıdakiler gibi çeşitli şekillerde kullanılabilir:
Temsilcinin DispatcherPriority olay kuyruğunda yürütmeyi bekliyor olarak değiştirme.
Temsilci olay kuyruğundan kaldırılıyor.
Temsilcinin geri dönmesi bekleniyor.
Temsilcinin yürütüldükten sonra döndürdüğü değeri alma.
BeginInvoke zaman uyumsuzdur; bu nedenle, denetim çağrıldıktan hemen sonra çağıran nesneye döner.
WPF'de yalnızca bir DispatcherObject oluşturan iş parçacığı bu nesneye erişebilir. Örneğin, ana kullanıcı arabirimi iş parçacığından ayrılan bir arka plan iş parçacığı, kullanıcı arabirimi iş parçacığında oluşturulan bir Button öğesinin içeriğini güncelleştiremez. Arka plan iş parçacığının öğesinin Content özelliğine erişebilmesi Buttoniçin, arka plan iş parçacığının ui iş parçacığıyla ilişkili iş parçacığına işi devretmesi Dispatcher gerekir. Bu, veya BeginInvokekullanılarak Invoke gerçekleştirilir. Invoke zaman uyumludur ve BeginInvoke zaman uyumsuzdur. İşlem belirtilen DispatcherPrioritykonumundaki olay kuyruğuna Dispatcher eklenir.
Kapatılmış bir Dispatcher üzerinde çağrılırsaBeginInvoke, döndürülen DispatcherOperation öğesinin durum özelliği olarak Abortedayarlanır.
Ayrıca bkz.
Şunlara uygulanır
BeginInvoke(Delegate, DispatcherPriority, Object[])
Belirtilen temsilciyi, oluşturulduğu iş parçacığında Dispatcher belirtilen önceliğe göre belirtilen bağımsız değişkenlerle zaman uyumsuz olarak yürütür.
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
Parametreler
- method
- Delegate
içinde belirtilen args
parametreleri alan ve olay kuyruğuna gönderilen yöntemin Dispatcher temsilcisi.
- priority
- DispatcherPriority
Belirtilen yöntemin çağrıldığı olay kuyruğundaki Dispatcher diğer bekleyen işlemlere göre öncelik.
- args
- Object[]
Verilen yönteme bağımsız değişken olarak geçirecek bir nesne dizisi. olabilir null
.
Döndürülenler
Çağrıldıktan hemen sonra BeginInvoke döndürülen ve olay kuyruğunda yürütmeyi bekleyen temsilciyle etkileşim kurmak için kullanılabilecek bir nesne.
Açıklamalar
DispatcherOperation tarafından BeginInvoke döndürülen nesne, belirtilen temsilciyle etkileşim kurmak için aşağıdakiler gibi çeşitli şekillerde kullanılabilir:
Temsilcinin DispatcherPriority olay kuyruğunda yürütmeyi bekliyor olarak değiştirme.
Temsilci olay kuyruğundan kaldırılıyor.
Temsilcinin geri dönmesi bekleniyor.
Temsilcinin yürütüldükten sonra döndürdüğü değeri alma.
BeginInvoke zaman uyumsuzdur; bu nedenle, denetim çağrıldıktan hemen sonra çağıran nesneye döner.
WPF'de yalnızca bir DispatcherObject oluşturan iş parçacığı bu nesneye erişebilir. Örneğin, ana kullanıcı arabirimi iş parçacığından ayrılan bir arka plan iş parçacığı, kullanıcı arabirimi iş parçacığında oluşturulan bir Button öğesinin içeriğini güncelleştiremez. Arka plan iş parçacığının öğesinin Content özelliğine erişebilmesi Buttoniçin arka plan iş parçacığının ui iş parçacığıyla ilişkilendirilmiş çalışma için Dispatcher temsilci seçmesi gerekir. Bu, veya BeginInvokekullanılarak Invoke gerçekleştirilir. Invoke zaman uyumlu ve BeginInvoke zaman uyumsuzdur. İşlem belirtilen DispatcherPrioritykonumundaki olay kuyruğuna Dispatcher eklenir.
Kapatılmış bir Dispatcher üzerinde çağrılırsaBeginInvoke, döndürülen DispatcherOperation öğesinin durum özelliği olarak Abortedayarlanır.
Şunlara uygulanır
BeginInvoke(DispatcherPriority, Delegate, Object)
Belirtilen temsilciyi belirtilen önceliğe ve ilişkili iş parçacığında Dispatcher belirtilen bağımsız değişkenle zaman uyumsuz olarak yürütür.
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
Parametreler
- priority
- DispatcherPriority
Belirtilen yöntemin çağrıldığı olay kuyruğundaki Dispatcher diğer bekleyen işlemlere göre öncelik.
- method
- Delegate
Olay kuyruğuna gönderilen tek bir bağımsız değişkeni alan yöntemin Dispatcher temsilcisi.
- arg
- Object
Belirtilen yönteme bağımsız değişken olarak geçirilebilir nesne.
Döndürülenler
Çağrıldıktan hemen sonra BeginInvoke döndürülen ve olay kuyruğunda yürütmeyi bekleyen temsilciyle etkileşim kurmak için kullanılabilecek bir nesne.
- Öznitelikler
Özel durumlar
method
, null
değeridir.
priority
geçerli DispatcherPrioritybir .
Örnekler
Aşağıdaki örnek, bir işlemi üzerine nasıl yerleştireceklerini Dispatchergösterir.
İlk olarak, bir bağımsız değişken kabul eden bir temsilci oluşturulur, bu durumda bir dize.
private delegate void OneArgDelegate(String arg);
Private Delegate Sub OneArgDelegate(ByVal arg As String)
Ardından, BeginInvoke(DispatcherPriority, Delegate, Object) adı verilir. Her DispatcherObject öğesinin Dispatcher ilişkili olduğu öğesini döndüren bir özelliği olduğundan, istenenDispatcher, adlı bir tomorrowsWeather
Grid sorguyla DispatcherObjectelde edilir. çağrısı BeginInvoke(DispatcherPriority, Delegate, Object) üç parametre alır: olarak ayarlanmış DispatcherPriority.Normalöncelik; temsilcinin OneArgDelegate
bir örneği aracılığıyla geçirilen geri çağırma ve geri çağırmanın bağımsız değişkeni olan adlı weather
bir dize.
// 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)
Açıklamalar
arg
bağımsız değişken gerekmiyorsa olabilir null
.
BeginInvoke , temsilci olay kuyruğundayken temsilciyle etkileşim kurmak için kullanılabilecek bir DispatcherOperation nesne döndürür.
DispatcherOperation tarafından BeginInvoke döndürülen nesnesi, belirtilen temsilciyle etkileşim kurmak için aşağıdakiler gibi çeşitli şekillerde kullanılabilir:
DispatcherPriority Temsilcinin olay kuyruğunda yürütülmesini bekliyor olarak değiştirme.
Temsilci olay kuyruğundan kaldırılıyor.
Temsilcinin geri dönmesi bekleniyor.
Temsilcinin yürütüldükten sonra döndürdüğü değeri alma.
BeginInvoke zaman uyumsuzdur; bu nedenle, denetim çağrıldıktan hemen sonra çağıran nesneye döner.
WPF'de, yalnızca bir DispatcherObject oluşturan iş parçacığı bu nesneye erişebilir. Örneğin, ana ui iş parçacığından ayrılan bir arka plan iş parçacığı, kullanıcı arabirimi iş parçacığında oluşturulan bir Button öğesinin içeriğini güncelleştiremez. Arka plan iş parçacığının öğesinin içerik özelliğine erişebilmesi Buttoniçin arka plan iş parçacığının ui iş parçacığıyla ilişkilendirilmiş çalışma için Dispatcher temsilci seçmesi gerekir. Bu, veya BeginInvokekullanılarak Invoke gerçekleştirilir. Invoke zaman uyumlu ve BeginInvoke zaman uyumsuzdur. İşlem belirtilen DispatcherPrioritykonumundaki olay kuyruğuna Dispatcher eklenir.
Aynı DispatcherPriorityanda birden çok BeginInvoke çağrı yapılırsa, bunlar çağrıların yapıldığı sırayla yürütülür.
Kapatılmış bir Dispatcher üzerinde çağrılırsaBeginInvoke, döndürülen DispatcherOperation öğesinin durum özelliği olarak Abortedayarlanır.
Ayrıca bkz.
Şunlara uygulanır
BeginInvoke(DispatcherPriority, Delegate, Object, Object[])
Belirtilen temsilciyi belirtilen önceliğe ve ilişkili iş parçacığındaki Dispatcher belirtilen bağımsız değişken dizisiyle zaman uyumsuz olarak yürütür.
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
Parametreler
- priority
- DispatcherPriority
Belirtilen yöntemin çağrıldığı olay kuyruğundaki Dispatcher diğer bekleyen işlemlere göre öncelik.
- method
- Delegate
Olay kuyruğuna gönderilen birden çok bağımsız değişken alan bir yöntemin Dispatcher temsilcisi.
- arg
- Object
Belirtilen yönteme bağımsız değişken olarak geçirilebilir nesne.
- args
- Object[]
Belirtilen yönteme bağımsız değişken olarak geçirilebilir bir nesne dizisi.
Döndürülenler
Çağrıldıktan hemen sonra BeginInvoke döndürülen ve kuyrukta Dispatcher yürütmeyi bekleyen temsilciyle etkileşim kurmak için kullanılabilecek bir nesne.
- Öznitelikler
Özel durumlar
method
, null
değeridir.
DispatcherPriority geçerli bir öncelik değildir.
Açıklamalar
arg
Parametre, bağımsız değişken gerekmemesi durumunda olabilirnull
.
BeginInvoke , temsilci olay kuyruğundayken temsilciyle etkileşim kurmak için kullanılabilecek bir DispatcherOperation nesne döndürür.
DispatcherOperation tarafından BeginInvoke döndürülen nesnesi, belirtilen temsilciyle etkileşim kurmak için aşağıdakiler gibi çeşitli şekillerde kullanılabilir:
DispatcherPriority Temsilcinin olay kuyruğunda yürütülmesini bekliyor olarak değiştirme.
Temsilci olay kuyruğundan kaldırılıyor.
Temsilcinin geri dönmesi bekleniyor.
Temsilcinin yürütüldükten sonra döndürdüğü değeri alma.
BeginInvoke zaman uyumsuzdur; bu nedenle, denetim çağrıldıktan hemen sonra çağıran nesneye döner.
WPF'de, yalnızca bir DispatcherObject oluşturan iş parçacığı bu nesneye erişebilir. Örneğin, ana ui iş parçacığından ayrılan bir arka plan iş parçacığı, kullanıcı arabirimi iş parçacığında oluşturulan bir Button öğesinin içeriğini güncelleştiremez. Arka plan iş parçacığının öğesinin Content özelliğine erişebilmesi Buttoniçin arka plan iş parçacığının ui iş parçacığıyla ilişkilendirilmiş çalışma için Dispatcher temsilci seçmesi gerekir. Bu, veya BeginInvokekullanılarak Invoke gerçekleştirilir. Invoke zaman uyumlu ve BeginInvoke zaman uyumsuzdur. İşlem belirtilen DispatcherPrioritykonumundaki olay kuyruğuna Dispatcher eklenir.
Aynı DispatcherPriorityanda birden çok BeginInvoke çağrı yapılırsa, bunlar çağrıların yapıldığı sırayla yürütülür.
Kapatılmış bir Dispatcher üzerinde çağrılırsaBeginInvoke, döndürülen DispatcherOperation öğesinin durum özelliği olarak Abortedayarlanır.