我的印象是,如果应用程序有一个打开的句柄并且它崩溃了,则不会释放该句柄,如果您尝试访问该句柄(比如说文件),那么您会收到错误消息。
但是,我已经在 Windows XP 及更高版本中尝试过,如果我在关闭句柄之前从任务管理器中关闭 exe,句柄似乎会被释放。以下是代码:
Private Sub Form_Load()
Dim iFile As Integer
iFile = FreeFile
Open "myfilelock" For Output Lock Read Write As #iFile
MsgBox "About to close" 'close it here with task manager
Close #iFile
End Sub
那么,如果具有这些句柄的 exe 崩溃,Windows XP 是否会释放所有打开的句柄?