在Blazor中延迟任务而不阻塞UI

弗朗切斯科·克里斯塔洛(Francesco Cristallo)

我在Blazor中创建了一个.razor通知组件,并且尝试在xx秒后自动关闭通知div。

到目前为止,它可以使用此方法

 private async Task CloseToast(Guid Id, bool autoclose = false)
{
    if (autoclose)
    {
        await Task.Delay(TimeSpan.FromSeconds(5));
    }

   //Code to remove the notification from list
    StateHasChanged();
}

问题在于,UI数据绑定停留了5秒钟,对变量(文本字段等)的任何一种或两种方式的绑定更新都处于暂停状态,直到关闭Notification并继续执行Task为止。

如何在xx秒后启动方法或代码块而不阻止Blazor中的主要UI任务?

佐尔特·本德斯(Zsolt Bendes)

带有计时器的组件可以倒计时


<h3>@Time</h3>

@code {
    [Parameter] public int Time { get; set; } = 5;

    public async void StartTimerAsync()
    {
        while (Time > 0)
        {
            Time--;
            StateHasChanged();
            await Task.Delay(1000);
        }
    }

    protected override void OnInitialized()
        => StartTimerAsync();
}

用法:

<Component />
<Component Time="7"/>

在客户端Blazor上测试。在服务器端Blazor中的行为应相同。希望这可以帮助

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从任务返回而不阻塞UI线程

来自分类Dev

为什么Window.ShowDialog在TaskScheduler任务中不阻塞?

来自分类Dev

C ++在异步中运行函数而不阻塞ui

来自分类Dev

Java 中是否有不阻塞 UI 的打印功能?

来自分类Dev

Winforms异步任务,一次运行多个线程而不阻塞UI

来自分类Dev

尝试在任务中嵌套任务以不阻止UI线程

来自分类Dev

如何在不导致UI冻结的情况下延迟执行特定任务

来自分类Dev

Java延迟而不冻结UI

来自分类Dev

Django中的Celery任务总是阻塞

来自分类Dev

我需要在面板中绘制10000个点而不阻塞UI

来自分类Dev

从UI线程运行线程而不阻塞UI线程

来自分类Dev

如何在阻塞的nodejs中创建睡眠/延迟?

来自分类Dev

在C#中测量任务之间的延迟

来自分类Dev

取消.Net 4.0中的任务延迟

来自分类Dev

4.2.0 中的 Celery 任务延迟调用约定

来自分类Dev

任务延迟

来自分类Dev

将项目添加到 ObservableCollection<T> 而不阻塞 UI

来自分类Dev

非阻塞任务。在.NET 4.5中等待

来自分类Dev

非阻塞任务。在.NET 4.5中等待

来自分类Dev

Django中的Celery任务始终处于阻塞状态

来自分类Dev

C#如何使用等待在不阻止UI的情况下捕获任务中的异常

来自分类Dev

从Blazor客户端中长期运行的后台任务中释放UI的推荐方法是什么

来自分类Dev

任务似乎互相阻塞

来自分类Dev

使用非阻塞任务

来自分类Dev

Blazor UI更新异步无效与异步任务

来自分类Dev

如何避免在不阻塞的情况下并发执行耗时的任务?

来自分类Dev

如何避免在不阻塞的情况下并发执行耗时的任务?

来自分类Dev

如何在不阻塞 Django 的情况下安排 celery 任务

来自分类Dev

任务中的UWP更新UI

Related 相关文章

热门标签

归档