我的查询需要一些时间才能看到结果。
我怎样才能增加进度栏直到我得到结果?
(在C#中工作)提前感谢
答案 0 :(得分:2)
您是否有任何迹象表明它何时完成,例如得到“迄今为止的结果”?如果没有,您希望使用ProgressBar
设置为Style
的ProgressBarStyle.Marquee
- 这将自动设置动画,您只需要在之后停止它。请注意,您需要启用视觉样式。
显然,您应该在后台线程中执行查询(例如,通过BackgroundWorker
),以避免阻止UI线程。
如果您的整体查询实际上包含多个步骤,那么您可以通过指示其实际走了多远来使您的进度条更有用......但我完全理解通常情况并非如此。
以下是使用选框样式的示例:
using System;
using System.Drawing;
using System.Windows.Forms;
public class Test
{
public static void Main(String[] args)
{
Application.EnableVisualStyles();
Button start = new Button {
Text = "Start",
Location = new Point(10, 30)
};
Button stop = new Button {
Text = "Stop",
Location = new Point(10, 60)
};
ProgressBar bar = new ProgressBar {
Style = ProgressBarStyle.Marquee,
Location = new Point(10, 90),
MarqueeAnimationSpeed = 20,
Visible = false
};
Form form = new Form {
Size = new Size(100, 200),
Controls = { start, stop, bar }
};
start.Click += (s, a) => bar.Visible = true;
stop.Click += (s, a) => bar.Visible = false;
Application.Run(form);
}
}
答案 1 :(得分:2)
您可以使用线程,或者,如果问题是您获得了大量数据,请在阅读时使用DataReader并更新您的progressBar。