请教WPFC#中关于线程安全的数据类型,怎么可以多线程访问的问题

请教WPFC#中关于线程安全的数据类型,怎么可以多线程访问的问题,第1张

protected void UpdateUI()

{

for (int i = 0i <100i++)

{

Thread.Sleep(10)

this.Dispatcher.BeginInvoke(new Action(

() =>

{

this.textBox1.Text += DateTime.Now.ToString()

this.textBox1.Text += "\r\n"

this.progressBar1.Value = i + 1

}))

}

}

Thread thread = new Thread(UpdateUI)

thread.Start()

//【第一步】编写连接字符串

string conString = "Server=连接的服务器DataBase=需要访问的数据库Uid=登录账号Pwd=登录密码"

//【第二部】创建连接对象

SqlConnection conn = new SqlConnection(conString)

//【第三步】SQL *** 作指令

string sql = "select * from TableName"

//【第四部】创建Command对象

SqlCommand cmd = new SqlCommand(sql, conn)

//【第五步】打开连接

conn.Open()

//【第六步】执行查询 *** 作

SqlDataReader objReader = cmd.ExecuteReader()

while(objReader.Read())

{

    Console.WriteLine(objReader["列名"])

}

//【注意】如果是执行增、删、改 *** 作

int result = cmd.ExecuteNonQuery()

//【第七步,一定要注意】关闭连接

conn.Close()

线程内变量 a 的值来自 TB,然后 a++ 再返回 TB,这不就是相加2000次吗,没问题。

你用的是 this.Dispatcher.Invoke,因为2个线程影响的是同一个 TB,会排队执行。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9429504.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存