Недавно я работал над проектом, и все было хорошо во время отладки, но после того, как я создал установку и установил проект, я получил ошибку «System.Runtime.InteropServices.ExternalException (0x80004005): GDI + ...». Я понял, что ошибка, вероятно, вызвана такими кодами, как:
My.Resources.MyImage.Save(Application.Startuppath + "/Example.png")
или / и
Sub Example()
if My.Settings.PortBusy = False Then
dim t1 as new threading.thread(addressof IsPortOpen)
t1.start
My.Settings.PortBusy = True
End If
End Sub
.
.
.
Function operaport() As Boolean
Dim Client As TcpClient = Nothing
Try
Client = New TcpClient("127.0.0.1", 9223)
Return True
Catch ex As SocketException
Return False
Finally
If Not Client Is Nothing Then
Client.Close()
End If
End Try
End Function
Sub IsPortOpen()
Dim brvpt As Boolean = brvport()
Dim gecpt As Boolean = geckoport()
Dim cpt As Boolean = chromeport()
Dim opt As Boolean = operaport()
If brvpt = True Or gecpt = True Or cpt = True Or opt = True Then
PortStatus.Checked = True
Else
PortStatus.Checked = False
End If
My.Settings.PortBusy = False
End Sub
Вместо них я использовал
Dim copy As Image = My.Resources.MyImage
copy.Save(Application.Startuppath + "/Example.png")
и
PortStatus.InvokeSafe(New shit(AddressOf IsPortOpen))
Но есть еще одна задача «Threading.Thread», которая взаимодействует с несколькими объектами пользовательского интерфейса. Итак, как я могу "InvokeSafe" несколько объектов, чтобы использовать многопоточные задачи, которые взаимодействуют с более чем одним объектом?
Большое спасибо за чтение :).