在同一个 SqlDataReader 上混合异步和非异步调用是否存在任何已知问题?

Are there any known issues with mixing async and non async calls on the same SqlDataReader?

比如说我打开一个异步连接。我执行我的 reader 异步。我开始正常使用 reader:

if (await reader.NextResultAsync())
            {
                while (await reader.ReadAsync())
                {
                   //work
                }
              }

然后我在同一个 reader 上做了一个非异步版本:

if (reader.NextResult())
            {
                while (reader.Read())
                {
                    //Work
                 }
             }

这是否会导致任何已知问题?我正在审查一些遗留代码,这显然是不一致的;但它会在 运行 时像这样混合它们时引起任何问题吗?

谢谢,

这不会导致任何问题。

事实上,这并不总是一个坏主意。异步调用比同步调用有更多的开销。异步获取 reader 和结果集(因为这可能需要很长时间)然后同步读取行(因为每一行可能很快可用)是合理的。