안녕하세요 저는이 코드를 사용하여 컴퓨터 서명을 생성하고 있습니다. 그러나 실행하는데 눈에 띄는 시간이 필요합니다. 왜 그렇게 느린지 궁금합니다. 더 빠른 방법을 권장합니까?더 빠른 방법으로 볼륨 일련 번호를 얻으시겠습니까?
Public Shared Function DriveSN(ByVal DriveLetter As String) As String
Dim disk As ManagementObject = New ManagementObject(String.Format("Win32_Logicaldisk='{0}'", DriveLetter))
Dim VolumeName As String = disk.Properties("VolumeName").Value.ToString()
Dim SerialNumber As String = disk.Properties("VolumeSerialnumber").Value.ToString()
Return SerialNumber.Insert(4, "-")
End Function
Private Shared msig As String = Nothing
Public Shared Function MachineSignature() As String
If msig Is Nothing Then
Dim list As New List(Of String)
For Each d As DriveInfo In DriveInfo.GetDrives()
If (d.IsReady) Then
list.Add(DriveSN(d.Name.Substring(0, 2)))
End If
Next
msig = String.Join(" & ", list.ToArray())
End If
Return msig
End Function
어떻게 그게 문제인지 알았습니까? –
디버거를 통한 스테핑. 다른 종류의 드라이브 (플로피, CD-ROM)를 검사하는 "IsReady"는 눈에 띄는 일시 정지를 취할 수 있습니다. 여기 미스테리는 없습니다. – Sake