我不知道如何在Compact .Net Framework中显示方法的执行。
例如,我有一个方法(例如 Upload()或 Print())需要一些时间(在某些情况下这是一个很大的时间间隔)才能完成。我希望用户可以看到时间的进展进度条上的耗时任务(例如 Upload())。
我试图用Thread
和ThreadPool.QueueUserWorkItembut
做到这一点,但我被卡住了。
问题是我不知道如何同步方法和进度条的线程。
请帮忙。
最佳答案
希望对您有所帮助:
ProgressBar pg = new ProgressBar();
pg.Maximum = 100;
pg.Step = 1;
this.Controls.Add(pg);
new Thread(new ThreadStart(() =>
{
// Replace with your code:
for (int i = 0; i < 100; i++)
{
if (pg.InvokeRequired)
pg.Invoke(new ThreadStart(() =>
{
pg.PerformStep();
}));
else
pg.PerformStep();
}
})).Start();
这部分很重要,否则您将获得异常(exception):
if (pg.InvokeRequired)
pg.Invoke(new ThreadStart(() =>
{
pg.PerformStep();
}));
else
pg.PerformStep();
关于c# - 进度条显示方法的执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4794074/