Wątki, taski - prośba o koncepcje.

0

Witam.

Próbuję przerobić mała aplikację do przerzucania danych z bazy MySQL do programu działającego na bazie lokalnej.
W tej chwili działa to tak:
Sprawdzenie czy są dane do przesłania, jeżeli tak to:

  1. Pobranie danych spełniających określony warunek z MySQL do struktury.
  2. Obróbka w pętli pobranych danych.
  3. Zapis w pętli obrobionych danych o lokalnej bazy.

Wszystko działa ok, ale pętle blokują działanie programu - właśnie to chciałbym zmienić.
Domyślam się, że najłatwiej będzie użyć tasków - tylko jak?

Myślałem nad czymś takim:

  1. Pobranie danych spełniających określony warunek z MySQL do struktury.
  2. Obróbka w pętli pobranych danych - uruchomiona jako task - Tutaj program musi "zaczekać", użyłem task.Wait(); ale wtedy GUI i tak jest blokowane - jak poprawnie powinno być zrealizowane to "czekanie"?
  3. Zapis w pętli obrobionych danych o lokalnej bazy - uruchomiona jako task

Ogólnie będę bardzo wdzięczny za jakaś ogólną koncepcje poprawnego rozwiązania.

0

Zamiast task.Wait() użyj await task, wtedy nie zablokujesz wątku i GUI będzie responsywne.

Odczyt i zapis danych z/do bazy możesz spróbować zrobić asynchronicznie, ale nie wiem czy są jakieś metody do aysnchronicznej obsługi MySQL.

1 użytkowników online, w tym zalogowanych: 0, gości: 1