1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Data;
6 using System.Data.SqlClient;
7
8 namespace FreeResource
9 {
10 class TestConn
11 {
12 public void openConn(int i)
13 {
14 string connstr = "server=(local);uid=sa;pwd=aaa;database=Test;";
15 SqlConnection conn = new SqlConnection(connstr);
16 conn.Open();
17 //conn.Close();
18 //conn.Dispose();
19 Console.WriteLine(i);
20 }
21
22 }
23
24 class TestConn2 : IDisposable
25 {
26 SqlConnection conn;
27 public TestConn2()
28 {
29 string connstr = "server=(local);uid=sa;pwd=aaa;database=Test;";
30 this.conn = new SqlConnection(connstr);
31 }
32
33 public void openConn(int i)
34 {
35
36 this.conn.Open();
37 //conn.Close();
38 //conn.Dispose();
39 Console.WriteLine(i);
40 }
41
42 public void Dispose()
43 {
44 conn.Close();
45 conn.Dispose();
46 }
47 }
48
49
50 class Program
51 {
52 static void Main(string[] args)
53 {
54 for (int i = 0; i < 10000; i++)
55 {
56 TestConn2 t = new TestConn2();
57 t.openConn(i);
58 t.Dispose();//必须手工调用,并非离开生存期之后就立即由.NET框架调用
59 }
60
61 }
62 }
63 }