none
是否可以強制關閉 InputBox RRS feed

  • 問題

  • 執行緒內跑 InputBox 比對使用者輸入資料,
    期間 Abort 執行緒後,甚至主視窗關閉 InputBox 依然會在,
    是否可以做到 try catch 執行緒 Abort 時,把 InputBox 關閉呢?

        Private T As Thread = Nothing
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Me.T = New Thread(AddressOf Proce)
            T.Start()
        End Sub
    
        Public Sub Proce()
            Try
                Do
                    Dim v As String = InputBox("掃描", Me.Text, "")
                    If v.Trim.ToUpper = "ABCD".ToUpper Then Exit Do
                    Thread.Sleep(500)
                Loop
            Catch ex As Exception
                MsgBox(ex.ToString)
            End Try
        End Sub

     

    2019年9月10日 上午 10:19

解答

  • 您可以在啟動執行緒之前先用InputBox取得使用者的輸入再將使用者的輸入當做參數傳給執行緒頁責執行的函式, 不要在執行緒負責執行的函數中使用InputBox要求使用者輸入資料
    • 已標示為解答 小見光二 2019年9月10日 下午 04:18
    2019年9月10日 下午 12:20

所有回覆

  • 您可以在啟動執行緒之前先用InputBox取得使用者的輸入再將使用者的輸入當做參數傳給執行緒頁責執行的函式, 不要在執行緒負責執行的函數中使用InputBox要求使用者輸入資料
    • 已標示為解答 小見光二 2019年9月10日 下午 04:18
    2019年9月10日 下午 12:20
  • 如果 Thread 需要隨著主程式關閉而結束,請將 Thread 的 IsBackground 屬性設為 true

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。 https://skilltree.my/

    2019年9月10日 下午 12:34
    版主
  • 謝謝建議,我重新思考程式流程。
    2019年9月10日 下午 04:19
  • Thread 的 IsBackground 屬性設為 true 測試結果,InputBox 也還是存在
    我有重新思考程式流程來避開了,謝謝

    2019年9月10日 下午 04:21