我把其他一些樣本的代碼放在一起,我得到一個我不能理解的錯誤。在這條線在下面的代碼,這個詞觀察員,此代碼中報告的奇怪錯誤,請解釋一下嗎?
Dim Results As ManagementObjectCollection = Worker.Get(Observer)
我得到的錯誤 「類型的值‘System.Management.ManagementOperationObserver’不能轉換爲‘整’」
有人能解釋這是什麼意思?
ManagementObjectSearcher.Get()有兩個簽名,一個沒有參數,另一個有一個參數,一個ManagementOperationObserver用於異步操作。這是我所提供的,但錯誤表明轉換涉及整數?
Public Shared Sub WMIDriveDetectionASYNC(ByVal args As String())
Dim Observer As New ManagementOperationObserver()
Dim completionHandler As New MyHandler()
AddHandler Observer.Completed, AddressOf completionHandler.Done
Dim Machine = "192.168.0.15"
Dim Scope = New ManagementScope("\\" & Machine & "\root\cimv2")
Dim QueryString = "select Name, Size, FreeSpace from Win32_LogicalDisk where DriveType=3"
Dim Query = New ObjectQuery(QueryString)
Dim Worker = New ManagementObjectSearcher(Scope, Query)
Dim Results As ManagementObjectCollection = Worker.Get(Observer) 'use parameter to make async
For Each item As ManagementObject In Results
Console.WriteLine("{0} {2} {1}", item("Name"), item("FreeSpace"), item("Size"))
Dim FullSpace As Long = (CLng(item("Size")) - CLng(item("FreeSpace"))) \ 1000000
Console.WriteLine(FullSpace)
Next
End Sub
Public Class MyHandler
Private _isComplete As Boolean = False
Public Sub Done(sender As Object, e As CompletedEventArgs)
_isComplete = True
End Sub 'Done
Public ReadOnly Property IsComplete() As Boolean
Get
Return _isComplete
End Get
End Property
End Class
感謝您的任何建議!
'Worker.Get'看起來像什麼? – Oded