首页 > 解决方案 > 在 Blazor WASM 中使用大表似乎不起作用

问题描述

在 Blazor WASM 应用程序 (.NET 5) 中,我有一个 Razor 组件,我在其中创建了一个大约 4k 行的表,并按照此处找到的 iText 网站的教程进行操作。

var dataTable = new Table(5, true)
  .UseAllAvailableWidth()
  .SetBorder(Border.NO_BORDER);
dataTable.AddColumnHeader("Header 1");
dataTable.AddColumnHeader("Header 2");
dataTable.AddColumnHeader("Header 3");
dataTable.AddColumnHeader("Header 4");
dataTable.AddColumnHeader("Header 5");
document.Add(dataTable);
    
for (int i = 0; i < FilteredItems.Count; i++)
{
  var item = FilteredItems.ElementAt(i);
  dataTable.AddColumnData(item.Item1);
  dataTable.AddColumnData(item.Item2);
  dataTable.AddColumnData(item.Item3);
  dataTable.AddColumnData(item.Item4);
  dataTable.AddColumnData(item.Item5);

  if (i % 50 == 0)
  {
    dataTable.Flush();
  }
}

dataTable.Complete();
document.Close();

对于每次刷新的情况,我都会收到以下错误Error: Garbage collector could not allocate 16384u bytes of memory for major heap section.

我怀疑这可能是 Blazor 的限制。还有其他人遇到这个问题吗?

标签: itext7blazor-webassembly

解决方案


  • 大量 RAM 的低延迟
  • 小 RAM 无低延迟

所以:

关闭低延迟。

https://docs.microsoft.com/en-us/dotnet/standard/garbage-collection/latency?redirectedfrom=MSDN

app.config

<configuration>
    <runtime>
        <gcServer enabled="false" />
    </runtime>
</configuration>

推荐阅读