Vic*_*nor 2 blazor blazor-client-side
我是 blazor 新手,偶然发现了一些奇怪的东西。如果我在 OnInitializedAsync 覆盖中执行无限 while 循环,它将在导航到另一个页面后继续运行。
此外,如果我来回导航,它将运行多个无限 while 循环。就好像它在每次导航到页面时创建一个新实例,但在离开页面时不会清理该实例。
这怎么可能?只要用户没有切换页面,推荐的连续 api 请求(用于更新数据)的方法是什么?或者任何类型的连续任务。
谢谢!-胜利者
您应该使您的组件成为一次性组件,并在 Dispose 方法中取消任何正在运行的任务/取消订阅任何事件等。
当 Blazor 渲染页面时,它将创建组件的新实例,并且当您从“页面”中删除组件时(这包括导航到另一个组件/页面),如果该组件实现 IDisposable,则将调用 Dispose。
如何实现长时间运行的任务取决于您 - 通常它会进入服务而不是 UI 组件。
| 归档时间: |
|
| 查看次数: |
948 次 |
| 最近记录: |