新聞中心
VB.NET編程語言功能強(qiáng)大,支持類的所有特性。每一個(gè)類實(shí)現(xiàn)的功能不盡相同,同時(shí)又能給我們帶來許多新的體驗(yàn)。比如VB.NET監(jiān)控類,就能幫助我們實(shí)現(xiàn)多線程同步,幫助我們提高編程效率。

在進(jìn)行VB.NET多線程開發(fā)時(shí),線程間同步調(diào)用同樣的函數(shù)是非常重要的。考慮你有一個(gè)寫文件的函數(shù),如果多個(gè)線程同時(shí)都調(diào)用這個(gè)函數(shù),在一個(gè)線程完成操作之前,再調(diào)用肯定會(huì)拋出異常。為避免此種情況發(fā)生你可以使用VB.NET監(jiān)控類Monitor。
在我們的例子中引入下面的命名空間:
- System
- System.Threading
- System.IO
- System.Text
使用VB.NET監(jiān)控類的Enter和Exit方法進(jìn)行方法的同步調(diào)用。下面顯示如何操作:
- Monitor.Enter(Me)
- Dim fs As FileStream = New FileStream ("C:\Temp\SyncTest.txt", FileMode.Append)
- Dim t As ThreadThread = Thread.CurrentThread
- fs.Write(Encoding.ASCII.GetBytes(t.Name & vbCrLf), 0, t.Name.Length + 2)
- Dim i As Integer
- For i = 0 To 10000
- fs.Write(Encoding.ASCII.GetBytes(i & ","), 0, i.ToString().Length + 1)
- Next
- fs.Close()
- Monitor.Exit(Me)
在寫入文件的代碼的開始處,我們調(diào)用 Monitor.Enter 方法。一旦寫操作結(jié)束,我們既調(diào)用 Monitor.Exit方法。這確保在一個(gè)線程調(diào)用這個(gè)函數(shù)時(shí),別的線程不能調(diào)用同樣的函數(shù)。你可以通過注釋掉這兩行代碼來輕易的檢查不使用VB.NET監(jiān)控類時(shí)發(fā)生的事情。
網(wǎng)站標(biāo)題:VB.NET監(jiān)控類具體功能剖析
鏈接地址:http://www.dlmjj.cn/article/djcjosi.html


咨詢
建站咨詢
