Có tương đương với Form.InvokeRequired trong WPF hay không, ví dụ: Dispatcher.InvokeRequired?Tương đương với InvokeRequired trong WPF
7
A
Trả lời
5
này là hơi kỳ lạ vì nó không xuất hiện trong IntelliSense, nhưng bạn có thể sử dụng:
var dispatcher = myDispatcherObject.Dispatcher;
if (dispatcher.CheckAccess()) { /* ... */ }
Như tất cả các thành phần giao diện người dùng kế thừa từ DispatcherObject
điều này sẽ giải quyết vấn đề cụ thể của bạn, nhưng nó không phải là cụ thể cho các chủ đề giao diện người dùng - nó có thể được sử dụng cho bất kỳ điều phối viên.
3
Một giải pháp khả thi mà đến tâm trí là:
if (Dispatcher.Thread.Equals(Thread.CurrentThread))
{
Action();
}
else
{
Dispatcher.Invoke(Action);
}
4
Tương đương là Dispatcher.CheckAccess.
0
Nếu bạn đang xây dựng một ứng dụng Windows Store, ví dụ trên sẽ không hoạt động. Dưới đây là ví dụ rằng hiện hoạt động. Sửa đổi khi cần thiết, tất nhiên :)
/// <summary>
/// Updates the UI after the albums have been retrieved. This prevents the annoying delay when receiving the albums list.
/// </summary>
/// <param name="albums"></param>
public void UpdateUiAfterAlbumsRetrieved(System.Collections.ObjectModel.ObservableCollection<PhotoAlbum> albums)
{
if (!Dispatcher.HasThreadAccess)
{
Dispatcher.RunAsync(CoreDispatcherPriority.Normal,() =>
{
ddlAlbums.DataContext = albums;
ddlAlbums.IsEnabled = true;
tbxProgress.Text = String.Empty;
ProgressBar.IsIndeterminate = false;
ProgressBar.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
});
}
else
{
ddlAlbums.DataContext = albums;
ddlAlbums.IsEnabled = true;
tbxProgress.Text = String.Empty;
ProgressBar.IsIndeterminate = false;
}
}
Các vấn đề liên quan
- 1. InvokeRequired trong WPF
- 2. WPF tương đương với TextRenderer
- 3. Java tương đương với WPF
- 4. Tương đương với "OnIdle" trong WPF
- 5. EndEdit tương đương trong WPF
- 6. BeginUpdate tương đương trong WPF?
- 7. WPF tương đương với thuộc tính AccesibleName
- 8. WPF tương đương với margin-top?
- 9. WPF tương đương với Application.AddMessageFilter (Windows Forms)
- 10. WPF tương đương với ControlPaint.Light là gì?
- 11. Có tương đương MessageBox trong WPF không?
- 12. Sự kiện KeyPress tương đương trong WPF
- 13. Có tương đương WPF với trình thám hiểm DOM không?
- 14. Có tương đương WPF cho ToolStripButton không?
- 15. FindElementsInHostCoordinates tương đương của Silverlight trong WPF là gì?
- 16. Tương đương TreeSet của Java tương đương với Python?
- 17. python tương đương tương đương
- 18. Tương đương với mysql_list_tables trong PHP PDO?
- 19. Tương đương với LinkedHashMap trong Python
- 20. Tương đương với gói Swing trong C#
- 21. Tương đương với "tiếp tục" trong Ruby
- 22. Tương đương với FileSystemWatcher (.NET) trong Cocoa
- 23. Tương đương với LastCall.IgnoreArguments trong EasyMock
- 24. Tương đương với NSMutableArray trong C++?
- 25. tương đương với remove_if trong D
- 26. tương đương với pipefail trong vỏ dash
- 27. Tương đương với timeIntervalSinceReferenceDate trong android
- 28. Tương đương với .Max() trong jquery
- 29. Tương đương với SoftReference trong .net?
- 30. IIS tương đương với VirtualHost trong Apache