【问题标题】:Dispatcher.BeginInvoke(() => blazor equivalentDispatcher.BeginInvoke(() => blazor 等效项
【发布时间】:2022-01-17 11:58:51
【问题描述】:

Dispatcher.BeginInvoke( () => { this.Button_Close.IsEnabled = true; this.Button_Download.IsEnabled = true; this.Cursor = Cursors.Arrow; }

【问题讨论】:

  • 请分享您对 blazor 的评论
  • 请提出一个完整的问题:问题是什么,这段代码应该何时/如何运行?

标签: asp.net-mvc blazor silverlight-5.0


【解决方案1】:

最接近的等价物是ComponentBase.InvokeAsync(delegate)

所有 Blazor 页面和组件都从 ComponentBase 派生。

但是使用模式不同(来自 WPF/Silverlight)。只有当您的代码在“外部”事件上运行并且您无法确定它是否在主线程上时,您才会需要它。

看起来像

await InvokeAsync( _ => 
   {
      disableDownload = false;
      StateHasChanged();
   });

和标记:

 <button disabled="@disableDownload" ... >Download</button>

【讨论】:

  • InvokeAsync 代码如下所示:protected Task InvokeAsync(Func workItem) => _renderHandle.Dispatcher.InvokeAsync(workItem);
猜你喜欢
  • 2023-03-10
  • 2020-06-06
  • 2021-01-08
  • 2020-01-14
  • 2021-03-15
  • 2021-05-18
  • 2020-02-03
  • 1970-01-01
  • 2020-05-19
相关资源
最近更新 更多