加载循环延迟C#
我有一个将数据加载到数据网格的应用程序。但是,加载过程需要几秒钟的时间。我想在加载数据时显示一个加载循环,但在数据加载完成之前,该循环不会显示。代码是:加载循环延迟C#,c#,visual-studio-2010,visual-c#-express-2010,C#,Visual Studio 2010,Visual C# Express 2010,我有一个将数据加载到数据网格的应用程序。但是,加载过程需要几秒钟的时间。我想在加载数据时显示一个加载循环,但在数据加载完成之前,该循环不会显示。代码是: public void processbutton(object sender, EventArgs e) { pictureBox1.Visible = true; Image image=Image.FromFile("C:\\Users\\me\\Documents\\Curr\\Projects\\P
public void processbutton(object sender, EventArgs e)
{
pictureBox1.Visible = true;
Image image=Image.FromFile("C:\\Users\\me\\Documents\\Curr\\Projects\\Proj\\Proj\\load.gif");
pictureBox1.Image = image;
//--------------------------------------------------------------------------
string ssqlconnectionstring = "string";
SqlConnection sqlconn = new SqlConnection(ssqlconnectionstring);
string comm = "SELECT * from Table";
sqlconn.Open();
//---------------------REST OF CODE-------------------------
您必须从一个单独的线程执行所有长时间运行的任务,否则会阻塞UI线程 查找
BackgroundWorker
类
干杯
编辑:
或者您可以使用Task类,如下所示:
public async void processbutton(object sender, EventArgs e)
{
pictureBox1.Visible = true;
Image image=Image.FromFile("C:\\Users\\me\\Documents\\Curr\\Projects\\Proj\\Proj\\load.gif");
pictureBox1.Image = image;
//--------------------------------------------------------------------------
await Task.Run(() =>
{
string ssqlconnectionstring = "string";
SqlConnection sqlconn = new SqlConnection(ssqlconnectionstring);
string comm = "SELECT * from Table";
sqlconn.Open();
//---------------------REST OF CODE-------------------------
});
那么,如果当前线程正在等待查询响应,您认为表单将如何重新绘制:)?也许您需要手动请求表单重新绘制或异步执行查询。。。