Vb.net 在VB中检查现有路径/文件名花费的时间太长

Vb.net 在VB中检查现有路径/文件名花费的时间太长,vb.net,winforms,Vb.net,Winforms,我正在创建一个应用程序,它有一个文本框,当用户输入文件名时,该文本框会尝试更新PictureBox 它有一个所有用户都将使用的预设目录,位于共享网络文件夹中。它还检查用户是否输入了完整的路径和文件名,并相应地显示图像 但是,如果用户开始键入“C:\Filename…”,代码将在“C:”之后挂起几秒钟。我遇到的一个更大的问题是,如果用户断开网络驱动器的连接,应用程序将持续查找它10或20秒,这是不必要的,我宁愿它停止尝试,如果它没有看到它2秒 Dim myCallback As New Image

我正在创建一个应用程序,它有一个文本框,当用户输入文件名时,该文本框会尝试更新PictureBox

它有一个所有用户都将使用的预设目录,位于共享网络文件夹中。它还检查用户是否输入了完整的路径和文件名,并相应地显示图像

但是,如果用户开始键入“C:\Filename…”,代码将在“C:”之后挂起几秒钟。我遇到的一个更大的问题是,如果用户断开网络驱动器的连接,应用程序将持续查找它10或20秒,这是不必要的,我宁愿它停止尝试,如果它没有看到它2秒

Dim myCallback As New Image.GetThumbnailImageAbort(AddressOf ThumbnailCallback)

'If the user's entry exists as a filename, display it in the picturebox
If Dir(txtGrab.Text) <> "" Then
   Dim myBitmap As New Bitmap(txtGrab.Text)
   Dim myThumbnail As Image = myBitmap.GetThumbnailImage(myBitmap.Width, myBitmap.Height, myCallback, IntPtr.Zero)
   myThumbnail.GetThumbnailImage(BorderSize, BorderSize, myCallback, IntPtr.Zero)
   imgDisplay.Image = myThumbnail
End If

'If the user's entry exists within intranet's path, display in picturebox
If Dir("\\Intranet\Images\" & txtGrab.Text & ".tif") <> "" Then
     Dim myBitmap As New Bitmap("\\Intranet\" & txtGrab.Text & ".tif")
     Dim myThumbnail As Image = myBitmap.GetThumbnailImage(myBitmap.Width, myBitmap.Height, myCallback, IntPtr.Zero)
     myThumbnail.GetThumbnailImage(BorderSize, BorderSize, myCallback, IntPtr.Zero)
     frmCodeGrabber.imgDisplay.Image = myThumbnail
End If
Dim myCallback作为新映像。GetThumbnailImageAbort(ThumbnailCallback的地址)
'如果用户条目作为文件名存在,请在picturebox中显示它
如果Dir(txtGrab.Text)“,则
将myBitmap变暗为新位图(txtGrab.Text)
Dim myThumbnail As Image=myBitmap.GetThumbnailImage(myBitmap.Width、myBitmap.Height、myCallback、IntPtr.Zero)
GetThumbnailImage(BorderSize、BorderSize、myCallback、IntPtr.Zero)
imgDisplay.Image=myThumbnail
如果结束
'如果用户条目存在于intranet的路径中,则显示在picturebox中
如果Dir(“\\Intranet\Images\”&txtGrab.Text&“.tif”)”,则
将myBitmap变暗为新位图(“\\Intranet\”&txtGrab.Text&“.tif”)
Dim myThumbnail As Image=myBitmap.GetThumbnailImage(myBitmap.Width、myBitmap.Height、myCallback、IntPtr.Zero)
GetThumbnailImage(BorderSize、BorderSize、myCallback、IntPtr.Zero)
frmCodeGrabber.imgDisplay.Image=myThumbnail
如果结束

噢……这么长的内容……请您简单地解释一下好吗?所以每次用户在文本框中键入内容时(即,textchanged事件)都会执行此方法?您应该从
验证
事件调用此方法,而不是从
textchanged
Keyup
Keypress
事件调用此方法。