zoukankan      html  css  js  c++  java
  • ADO.NET异步操作测试

    配置文件:

    <?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 = 0; i < 1000; 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 = 0; i < 1000; 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

  • 相关阅读:
    2016.11.30
    java韩顺平老师视频有需要可以留言
    UESTC 1425 Another LCIS
    hdu 3308 LCIS
    HDU 3308 LCIS 线段树区间更新
    poj crane
    poj1436 Horizontally Visible Segments
    编程习惯记录
    poj 3225 Help with Intervals
    UVA 1513 Movie collection
  • 原文地址:https://www.cnblogs.com/byxxw/p/4881488.html
Copyright © 2011-2022 走看看