このアプリの新しいバージョンでサーバー チェックポイントを作成しています。アプリがメインフォームを開こうとすると、このエラーが発生します。
フォームの作成中にエラーが発生しました。詳細については、Exception.InnerException を参照してください。エラー: 現在のスレッドがシングルスレッド アパートメントにないため、ActiveX コントロール '6bf52a52-394a-11d3-b153-00c04f79faa6' をインスタンス化できません。
このフォームがスプラッシュスクリーンとして使用されていることを除いて、通常のフォームのようなものなので、これが何であるかはわかりません。スプラッシュ画面を削除すると、フォームはすべてのプラグインとモジュールで正常に開きます。これが私が使用したコードの一部です
Public Class example_form
Public Function servercheck() As Boolean
Dim objUrl As New System.Uri("http://google.com")
Dim objWebReq As System.Net.WebRequest
objWebReq = System.Net.WebRequest.Create(objUrl)
Dim objresp As System.Net.WebResponse
Try
objresp = objWebReq.GetResponse
objresp.Close()
objresp = Nothing
Return True
Catch ex As Exception
objresp = Nothing
objWebReq = Nothing
Return False
End Try
End Function
Private Sub Form4_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
BackgroundWorker1.RunWorkerAsync()
Control.CheckForIllegalCrossThreadCalls = False
End Sub
Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
If servercheck() = True Then
Form1.Show()
Me.Hide()
BackgroundWorker1.CancelAsync()
Else : PictureBox1.Image = My.Resources._12383u9
MsgBox("some text here", MsgBoxStyle.Critical)
End
End If
End Sub
End Class
これでコードができました。フォームを開こうとすると、バックグラウンド ワーカーでエラーが発生します。(コードの最後に)