当前位置:编程学习 > C#/ASP.NET >>

多线程求助

本人是菜鸟

 Private Sub btn_begin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_begin.Click
        '记录变量
        Me.loopSub = Me.chk_loopsub.Checked
        Me.override = Me.chk_override.Checked
        '清空文本框
        Me.txt_detail.Text = ""
        Me.txt_output.Text = ""
        thread = New Thread(AddressOf doWork)
        thread.Start()
        Me.btn_begin.Enabled = False
        Me.GroupBox1.Enabled = False
    End Sub
    Public Sub doWork()
        If Directory.Exists(path) Then
            loopPath(path)
            SetText("提取完成")
            Me.Complete("提取完成")
        Else
            Me.Complete("请选择目录")
            Exit Sub
        End If
    End Sub

点击按钮后启动一个线程,我在本地调试时没有问题,但做成安装包后在其它电脑上安装后点击按钮后应用程序直接关闭了,是不是有线程安全问题啊?本人菜鸟,求高手赐教 --------------------编程问答-------------------- 不觉得,应该还是没测到关键问题 --------------------编程问答-------------------- 应该是调用com组件问题,不过为什么在线程内的错误不会被捕获呢,程序就直接关闭了。我如果不使用多线程的话可以捕获到这个错误,

 Public Sub exceptionHandler(ByVal sender As Object, ByVal e As System.Threading.ThreadExceptionEventArgs)
        log(e.Exception.Message)
 End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        path = My.Settings.path
        Me.txt_path.Text = path
        AddHandler Application.ThreadException, AddressOf Me.exceptionHandler
        log("程序启动于" & Now())
End Sub

错误语句是这个:app = New AutoCAD.AcadApplication --------------------编程问答-------------------- 那就改多线程咯。改到正确为止,最后才加上多线程。
补充:.NET技术 ,  VB.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,