这是一个奇怪的... 在 Windows 窗体应用程序 (VB.NET/VS 2005) 中,我需要偶尔检查是否插入了应用程序 DVD。
在我的生产机器(以及我们的大多数客户)中,这段代码的执行时间不到一秒。但在某些机器中,大约需要 8 到 10 秒。我在那些速度较慢的几台电脑上找不到任何共同点(不同的操作系统、不同的 RAM、不同的处理器、更多的驱动器、更少的驱动器等)。
它发生在我们大约 4% 的测试机器上(以及我们的一些朋友机器,到目前为止:))
由于这个函数它只被调用一次,我可以忍受它。但奇怪的是,我们偶然发现这一点纯属运气,如果 VMWare 虚拟机正在运行,代码(在主机操作系统中运行)将花费预期不到一秒!
有没有人遇到过类似的事情?任何人至少可以为此提供一些解释吗?
i_DrivesArray = GetLogicalDrives()
i_DrivesCount = i_DrivesArray.Length
For i_DriveNumber = 0 To i_DrivesCount - 1
i_DriveInformation = New DriveInfo(i_DrivesArray(i_DriveNumber))
If (i_DriveInformation.DriveType = i_DriveTargetType And i_DriveInformation.IsReady = True) Then
If File.Exists(i_DriveInformation.Name.ToString & ci_CDIdentifiers(i_Counter).ToString) = True Then
ci_IsCDInserted = True
ci_PathCD = i_DriveInformation.Name.ToString
Exit For
End If
End If
Next