VB.NET監控類具體功能剖析
VB.NET編程語言功能強大,支持類的所有特性。每一個類實現的功能不盡相同,同時又能給我們帶來許多新的體驗。比如VB.NET監控類,就能幫助我們實現多線程同步,幫助我們提高編程效率。
在進行VB.NET多線程開發時,線程間同步調用同樣的函數是非常重要的。考慮你有一個寫文件的函數,如果多個線程同時都調用這個函數,在一個線程完成操作之前,再調用肯定會拋出異常。為避免此種情況發生你可以使用VB.NET監控類Monitor。
在我們的例子中引入下面的命名空間:
- System
- System.Threading
- System.IO
- System.Text
使用VB.NET監控類的Enter和Exit方法進行方法的同步調用。下面顯示如何操作:
- 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)
在寫入文件的代碼的開始處,我們調用 Monitor.Enter 方法。一旦寫操作結束,我們既調用 Monitor.Exit方法。這確保在一個線程調用這個函數時,別的線程不能調用同樣的函數。你可以通過注釋掉這兩行代碼來輕易的檢查不使用VB.NET監控類時發生的事情。
【編輯推薦】