配置文件:

<?xml version="1.0"?>
<configuration>
<startup> <supportedRuntime version="v2.0.50727"/>
</startup> <appSettings> <add key="Test" value="Data Source=10.68.108.3;Initial Catalog=ZhanJiang;Persist Security Info=True;User ID=eerpsa;Password=eerpP@ssword;Asynchronous Processing=true;MultipleActiveResultSets=true"/>
</appSettings>
</configuration>

异步操作的连接字符串要加入:Asynchronous Processing=true;MultipleActiveResultSets=true

测试代码:

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data.SqlClient;
using System.Diagnostics;
using System.Linq;
using System.Text; namespace TestConsoleApp
{
[NUnit.Framework.TestFixture]
public class SyncADONetTest
{ [NUnit.Framework.Test]
public void test()
{
Console.WriteLine("test");
var sqlConnection = new SqlConnection(ConfigurationManager.AppSettings["Test"]);
sqlConnection.Open();
var cmd = new SqlCommand();
cmd.Connection = sqlConnection; Stopwatch sw = new Stopwatch();
sw.Start();
for (var i = ; i < ; i++)
{
cmd.CommandText = "INSERT INTO Test (UserName) VALUES ('" +
"user" + i.ToString() + "')";
cmd.ExecuteNonQuery();
}
sw.Stop();
var end = sw.ElapsedMilliseconds;
Console.WriteLine("同步用时:{0}", end); sqlConnection.Close(); var sqlConnection2 = new SqlConnection(ConfigurationManager.AppSettings["Test"]);
sqlConnection2.Open(); sw.Reset();
sw.Start();
for (var i = ; i < ; i++)
{
var cmd2 = new SqlCommand();
cmd2.Connection = sqlConnection2;
cmd2.CommandText = "INSERT INTO Test (UserName) VALUES ('" +
"user" + i.ToString() + "')";
cmd2.BeginExecuteNonQuery(ir => {
SqlCommand icmd = ir.AsyncState as SqlCommand;
icmd.EndExecuteNonQuery(ir);
}, null);
}
sw.Stop();
var end2 = sw.ElapsedMilliseconds;
Console.WriteLine("异步用时:{0}", end2);
sqlConnection.Close();
}
}
}

测试结果:

参考:https://technet.microsoft.com/zh-cn/library/zw97wx20(v=vs.100).aspx

ADO.NET异步操作测试的更多相关文章

  1. Edge.js:让.NET和Node.js代码比翼齐飞

    通过Edge.js项目,你可以在一个进程中同时运行Node.js和.NET代码.在本文中,我将会论述这个项目背后的动机,并描述Edge.js提供的基本机制.随后将探讨一些Edge.js应用场景,它在这 ...

  2. MVC的异步,Entity Framework的异步,ADO.NET的异步,

    MVC的异步化改造 无比轻松,只要把ActionResult改为async Task<AstionResult>: public async Task<ActionResult> ...

  3. [.NET 4.5] ADO.NET / ASP.NET 使用 Async 和 Await 异步 存取数据库

    此为文章备份,原文出处(我的网站)  [.NET 4.5] ADO.NET / ASP.NET 使用 Async 和 Await 异步 存取数据库 http://www.dotblogs.com.tw ...

  4. Delphi中ADO异步执行方式

    当ADO开始处理数据后,应用程序必须等到ADO处理完毕之后才可以继续执行.但是除了同步执行方式之外,ADO也提供了异步执行的方式,允许当ADO处理时,应用程序仍然能够先继续执行.而当ADO处理数据完毕 ...

  5. ADO异步查询显示进度条

    一般,ADO都是以同步的方式来处理数据.这就是说,当ADO开始处理数据后,应用程序必须等到ADO处理完毕之后才可以继续执行.但是除了同步执行方式之外,ADO也提供了异步执行的方式,允许当ADO处理时, ...

  6. ADO.NET 4.5中的异步与流特性

    .NET 4.5为仍在选择直接与DataReader系列类打交道的.NET开发人员带来了一些新的异步与流特性支持.SqlDataReader允许开发人员在减少一些便利性的基础上获得更好的性能.例如,该 ...

  7. vb6异步ADO操作

    Private withevents M_Conn as adodb.connection Private CmdFinished as boolean sub somesub AdoCmd.Exec ...

  8. ADO.NET的弹性连接控制[ADO.NET idle connection resiliency]

    ADO.NET连接SQL Server有时候联机会无故的中断 (例如闲置过久或是交易时间太长等因素),这时又要重新连接,在.NET Framework 4.5之前,这件事情要由开发人员自己依照ADO. ...

  9. ADO.NET 中的新增功能

    ADO.NET 中的新增功能: .NET Framework (current version) 以下是 .NET Framework 4.5 中 ADO.NET 的新增功能. SqlClient D ...

随机推荐

  1. Impala SQL 语言元素(翻译)

    摘要: http://www.cloudera.com/content/cloudera-content/cloudera-docs/Impala/latest/Installing-and-Usin ...

  2. su: warning: cannot change directory to : Permission denied ;-bash: bash_profile: Permission denied

    一.查看主目录权限对不对 1:问题描述 [root@ser6-52 ~]# su - mongodb su: warning: cannot change directory to /home/mon ...

  3. 【转载】Java中使用Jedis操作Redis

    1 package com.test; 2 3 import java.util.HashMap; 4 import java.util.Iterator; 5 import java.util.Li ...

  4. redis性能测试以及影响性能的因素

    redis-benchmark测试工具的命令使使用方法及参数如下:redis-benchmark [-h <host>] [-p <port>] [-c <clients ...

  5. c#读取xml操作

    1/定义一个XmlDocument对象xDoc 2/通过XmlDocument来load需要读取的xml文件 3/通过XmlDocument的SelectSingleNode来找到节点,并把节点转换为 ...

  6. 使用ajax进行汽车详情表的查询

    主界面代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...

  7. 顽石系列:CSS实现垂直居中的五种方法

    顽石系列:CSS实现垂直居中的五种方法 在开发过程中,我们可能沿用或者试探性地去使用某种方法实现元素居中,但是对各种居中方法的以及使用场景很不清晰.参考的内容链接大概如下: 行内元素:https:// ...

  8. selenium模块控制浏览器

    利用selenium模块控制浏览器 导入selenium模块:from selenium import webdriver browserFirefox = webdriver.Firefox()#打 ...

  9. IDA 调试 Android 方法及简单的脱壳实现

    IDA 调试 Android 方法及简单的脱壳实现 标签: android原创逆向调试dalvik 2016-05-24 14:24 9286人阅读 评论(3) 收藏 举报 分类: 原创(25) An ...

  10. Python与硬件学习笔记:蜂鸣器(转)

    相信大家对蜂鸣器都不会陌生,很多产品和方案中都会用到蜂鸣器,大部分都是使用蜂鸣器来做提示或报警,比如按键按下.开始工作.工作结束或是故障等等.这里对单片机在蜂鸣器驱动上的应用作一下描述. 蜂鸣器的介绍 ...