C# 执行查询时窗体冻结

C# 执行查询时窗体冻结,c#,mysql,freeze,C#,Mysql,Freeze,你好 我试图在MySql中查询时添加一个进度条。我检测到表单恰好在数据集开始填充时冻结。我也知道查询很复杂,所以我尝试配置backgroundworker,当它到达填充过程时,表单冻结和进度条在数据集完成填充之前不会工作。如何防止表单冻结或使用backgroundworker使数据集填充工作与进度条异步 我的代码是: try { Cursor = Cursors.WaitCursor; MySqlDataAdapter da = new MySqlDataAdapter(SetV

你好

我试图在MySql中查询时添加一个进度条。我检测到表单恰好在数据集开始填充时冻结。我也知道查询很复杂,所以我尝试配置backgroundworker,当它到达填充过程时,表单冻结和进度条在数据集完成填充之前不会工作。如何防止表单冻结或使用backgroundworker使数据集填充工作与进度条异步

我的代码是:

try
{
    Cursor = Cursors.WaitCursor;
    MySqlDataAdapter da = new MySqlDataAdapter(SetValueForQuery, Conector());
    DataSet ds = new DataSet();
    **da.Fill(ds); **
     SetValueForDataSet = ds;
}
finally
{
    Cursor = Cursors.Default;
}

您应该尝试使查询异步

例如:

public void Main(String[] args){
   Thread asyncWorker = new Thread(Work); //Creates the Thread
   asyncWorker.Start(); //Starts the Thread
   Console.ReadKey(); //Makes the Main Thread busy
}
public void Work(){
   while(true)
      Console.WriteLine("I'm busy");
}

填充需要发生在另一个线程上、使用任务、异步/等待等。。。您正在阻止GUI线程。请异步填充数据集