【发布时间】:2016-01-31 11:32:25
【问题描述】:
我有一个带有进度条的简单表格:
像这样:http://i.stack.imgur.com/jrM7Z.png
我想在开始硬方法之前开始进度条表单。
对于进度条,我需要新线程。
我的代码是:
Thread myThread = new System.Threading.Thread(delegate () {
new ProgressBarForm().Visible = true;
});
myThread.Start();
hardMethodForAlongTime();
但如果我运行代码,我的进度条会滞后并且无法正常工作。
我该怎么做?而且,我可以在hardMethodForAlongTime() 之后使用myThread.Stop() 停止线程吗?或者有没有更好的解决方案?
Thread myThread = new System.Threading.Thread(delegate () {
new ProgressBarForm().Visible = true;
});
myThread.Start();
hardMethodForAlongTime();
myThread.Stop(); //stop?
感谢您的回复。
【问题讨论】:
-
不,辛苦的工作应该在后台线程上完成,进度条应该留在 UI 线程上。
-
@Jens 我不能在新线程中运行
hard work,因为这个hard work使用来自实际表单的组件... -
首先,这听起来像是非常有缺陷的代码。也许在您的问题中添加更多代码,了解您实际在做什么。进度条可能是最少的问题。
标签: c# multithreading progress-bar