WPFにForm.InvokeRequiredと同等のものがありますか? Dispatcher.InvokeRequired?WPFのInvokeRequiredに相当します。
7
A
答えて
5
それがインテリセンスには表示されませんが、あなたが使用できるように、これは少し奇妙です:
var dispatcher = myDispatcherObject.Dispatcher;
if (dispatcher.CheckAccess()) { /* ... */ }
すべてのUIコンポーネントが継承したようDispatcherObject
から、これはあなたの特定の問題を解決するはずですが、UIスレッドに固有のものではありません。どのディスパッチャでも使用できます。
3
頭に浮かん可能な解決策がある:
if (Dispatcher.Thread.Equals(Thread.CurrentThread))
{
Action();
}
else
{
Dispatcher.Invoke(Action);
}
4
相当物はDispatcher.CheckAccessです。
0
Windowsストアアプリを構築している場合、上記の例は機能しません。以下は、がの場合の例です。もちろん、必要に応じて変更してください。
/// <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;
}
}
関連する問題
- 1. WPF相当のマージントップ?
- 2. WPFのSwingUtilities.invokeLater相当の
- 3. WPFの "OnIdle"に相当するもの
- 4. Java SWTはWPFのitemtemplateに相当しますか?
- 5. WPFに相当するForm.ShowDialog(IWin32Window)
- 6. AccesibleNameプロパティに相当するWPF
- 7. WPFに相当するSilverlightのScrollIntoViewはありますか?
- 8. UWPのSplitViewハンバーガーメニューに相当するWPFはありますか?
- 9. DOMエクスプローラに相当するWPFはありますか?
- 10. ToolStripButtonに相当するWPFはありますか?
- 11. WPFに相当するBitBltはありますか?
- 12. .NET内のjava.net.URLConnectionに相当します。
- 13. boto3のget_contents_to_fileに相当します。
- 14. EntityDataSourceのe.ReturnValueに相当します。
- 15. perrorのC++に相当しますか?
- 16. QtのGtkSpinnerに相当しますか?
- 17. virtualenvのLuaに相当しますか?
- 18. WP7のデータリストに相当しますか?
- 19. TFSのオープンソースに相当しますか?
- 20. Linux上のBBEditに相当します。
- 21. Visual Basicのlog4jに相当します。
- 22. RubyのcURLに相当しますか?
- 23. Silverlight 5のUnsafeAddrOfPinnedArrayElementに相当します。
- 24. Underscore.jsに相当します.jQueryの_plock
- 25. JMockItのtimes()に相当しますか?
- 26. cuBLASのcudaGetErrorStringに相当しますか?
- 27. JavaのC++バリデーションテンプレートに相当します。
- 28. マイクロフォーマットのDTDに相当しますか?
- 29. mstestのassert.warningに相当しますか?
- 30. QTMovieViewのオーディオに相当しますか?