首页 > 解决方案 > 如何使用跨度在异步方法中?

问题描述

我正在尝试使用以下代码在异步方法中确定有效的 base64 字符串:

public static async Task<bool> IsBase64String(string base64)
{
    Span<byte> buffer = new Span<byte>(new byte[base64.Length]);
    return await Task.FromResult(Convert.TryFromBase64String(base64, buffer, out int bytesParsed));
}

但是跨度不能在异步方法中声明,请任何人帮忙?

标签: c#

解决方案


我正在尝试在异步方法中确定有效的 base64 字符串

为什么?该方法没有任何异步。解决此问题的正确方法是删除async关键字:

public static bool IsBase64String(string base64)
{
  Span<byte> buffer = new Span<byte>(new byte[base64.Length]);
  return Convert.TryFromBase64String(base64, buffer, out int bytesParsed);
}

推荐阅读