异步读取字段有什么好处吗?
假设我有以下内容:
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);
使用 IsDBNullAsync
和 GetInt32Async
等是否会给现实世界带来任何好处?
最佳答案
在浏览了一些反射器之后,这里有趣的方法(GetFieldValueAsync<T>
、IsDBNullAsync
和internal
方法GetBytesAsync
)只为CommandBehavior.SequentialAccess
做“有趣”的代码。设想。所以:如果你不使用它:不要打扰 - 行数据已经缓冲在内存中,并且 Task<T>
是纯粹的开销(尽管它至少是一个已经完成的任务结果,即 Task.FromResult<T>
- 由 await
有效处理,无需上下文切换)。
关于c# - 从 SqlDataReader 异步读取每个字段有什么好处吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19894975/