小编BTO*_*TOM的帖子

Blazor Server 使用计时器定期更新图像

抱歉问了这个基本问题。

图像将粘贴并显示在使用 Blazor Server 创建的网页上。

我想定期更新此显示的图像。(例如每秒更新一次)

该图像存储在 wwwroot / imageFiles 位置,名称为 PreviewImage.bmp。

具体来说,我想在替换这个wwwroot/imageFiles下的PreviewImage.bmp时,将网页上显示的图像切换为替换后的图像。

例如,当我将显示狗的 PreviewImage.bmp 更改为显示猫的 PreviewImage.bmp 时,我想切换网页上显示的图像。

我想知道是否可以使用 StateHasChanged () 更新图像;用计时器,但这不起作用。

<img src="@previewImg" />

@code{
    
    private string previewImg = string.Empty;
    private Timer timer = new(1000);

    protected override void OnInitialized()
    {
        previewImg = @"imageFiles/PreviewImage.bmp";

        timer.Elapsed += (sender, eventArgs) => OnTimerCallback();
        timer.AutoReset = true;
        timer.Start();            
    }

    private void OnTimerCallback()
    {    
        _ = InvokeAsync(() =>
       {    
         previewImg = @"imageFiles/PreviewImage.bmp";
         StateHasChanged();
       });
    }
 }
Run Code Online (Sandbox Code Playgroud)

但是,如果您使用 F5 键重新加载整个页面,图像将会更新。

有没有办法实现这种图像更新?

很抱歉,内容很难理解。

感谢您的建议。

blazor blazor-server-side

0
推荐指数
1
解决办法
1093
查看次数

标签 统计

blazor ×1

blazor-server-side ×1