Форма заморозится при выполнении запроса - PullRequest
0 голосов
/ 07 апреля 2020

Добрый день.

Я пытаюсь добавить индикатор выполнения, консультируясь с запросом в MySql. Я обнаружил, что форма зависает именно тогда, когда DataSet начинает заполняться. Я также знаю, что запрос сложный, поэтому я пытаюсь настроить backgroundworker, и снова, когда он достигает процесса заполнения, форма останавливается и индикатор выполнения не работает до заполнения DataSet fini sh. Как я могу предотвратить замораживание формы или использовать backgroundworker, чтобы заполнение DataSet работало async с индикатором выполнения?

Мой код такой:

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

1 Ответ

1 голос
/ 07 апреля 2020

Вы должны попытаться сделать запрос асинхронным.

Пример:

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");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...