Ado.net dostep asynchroniczny

0

Hej,
stworzyłem aplikacje w win forms która łączy sie do bazy i pobiera pewne rekordy, ale podczas pobierania nie mogę pracować na mojej aplikacji bo łapię z wiechę;/ jakie propozycje?? watki?

pozdr.

0

Moze Application.DoEvents() wystarczy?

0

dzięki wielkie

0

hym i nie pomogło ;/ może zarzucę kodem, jak wrzucam plik 20mb to z wiecha kompletna;/

 try
            {
                FileStream st = new FileStream(tbSciezka.Text,
    FileMode.Open);
                byte[] buffer = new byte[st.Length];
                st.Read(buffer, 0, (int)st.Length);
                st.Close();
                Application.DoEvents(); //?
                SqlDatabase db = new SqlDatabase(this.CreateConnection());
                DbCommand cmd = db.GetStoredProcCommand(@"DodajPlik");
                db.AddInParameter(cmd, "@ParamPlik ", DbType.Binary, buffer);
                int i = db.ExecuteNonQuery(cmd);
                MessageBox.Show(i.ToString());
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

pozdrawiam

0

To wrzuc do osobnego watku. Jak chcesz powiadomienie, to stworz sobie zdarzenie i sie pod nie podepnij.

int i = db.ExecuteNonQuery(cmd);
0
johny_bravo napisał(a)

Jak chcesz powiadomienie, to stworz sobie zdarzenie i sie pod nie podepnij.

Jaki zdarzenie? co ono ma robić? bo trochę nie czaje?

0

Wlasne zdarzenie, ktore bedzie wywolane w momencie zakonczenia kodu watku. Potrzebujesz powiadomienie o zakonczeniu?

0
johny_bravo napisał(a)

Potrzebujesz powiadomienie o zakonczeniu?

Tak, czyli cos takeigo ze jak zostanie zakonczony watek to mam wywolac zdarzenie ktore za pomoca delegata przypne do metody ktora zwraca mi int?

0

W takim razie najszybciej bedzie jak wykorzystasz BackgroundWorker. Podpinasz zdarzenia DoWork i RunWorkerCompleted i masz to czego szukasz.

0

hehe ok dzięki:)

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