如何在WinForms C#中使用线程?
发布时间:2020-12-15 23:29:08 所属栏目:百科 来源:网络整理
导读:我有一个关于使用线程的问题.我在WinForms中有一个应用程序.我有一个带方法的开始按钮.当我点击它时,该方法开始执行并持续很长时间.当方法执行时,表单未激活,我甚至无法关闭它,直到方法结束.我想激活表单并单击另一个按钮(停止按钮)以停止执行方法. private
我有一个关于使用线程的问题.我在WinForms中有一个应用程序.我有一个带方法的开始按钮.当我点击它时,该方法开始执行并持续很长时间.当方法执行时,表单未激活,我甚至无法关闭它,直到方法结束.我想激活表单并单击另一个按钮(停止按钮)以停止执行方法.
private void start_Click(object sender,EventArgs e) { StartLoading() //Some Method which performing I want to stop at any time } private void stop_Click(object sender,EventArgs e) { //Stop performing Method from start_Click } 我试着使用下一个代码: private void start_Click(object sender,EventArgs e) { Thread StartThread = new Thread(StartLoading); StartThread.Start(); } public void StartLoading() { } 它有效.表格保持活动状态时,该方法正在执行.但我不知道如何在stop_Click事件上停止此线程. 最好的祝福 解决方法
如果你在线程中做了一些循环,我建议你添加一个变量,如下所示:
在停止按钮中,添加以下内容: bool isStopped = false; 在你的循环中: while(yourCondition) { if(isStopped) break; } 这样,它更安全,可以确保您完成当前循环 但是如果你想立即终止它,那就是一个名为Thread.Abort()的函数 你必须像这样修改代码: Thread StartThread = null; private void start_Click(object sender,EventArgs e) { StartThread = new Thread(StartLoading); StartThread.Start(); } public void StartLoading() { StartThread.Abort(); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |