异步读取字段有任何好处吗?

假设我有以下情况:

SqlDataReader reader = await cmd.ExecuteReaderAsync();
while (await reader.ReadAsync())
{
    try
    {
        if (reader.IsDBNull(COL_NAME))
        {
            continue;
        }

        user = new User();
        user.Id = reader.GetInt32(COL_ID);

使用IsDBNullAsyncGetInt32Async等会在现实世界中受益吗?

最佳答案

窥视了反射器之后,此处有趣的方法(GetFieldValueAsync<T>IsDBNullAsyncinternal方法GetBytesAsync)仅对CommandBehavior.SequentialAccess场景执行“有趣”的代码。所以:如果您不使用它:不用担心-行数据已经在内存中缓冲了,并且Task<T>是纯开销(尽管它至少将是一个已经完成的任务结果,即Task.FromResult<T>-有效处理)通过await,无需上下文切换)。

关于c# - 从SqlDataReader异步读取每个字段有什么好处?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19894975/

10-16 10:02