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.
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.
Moze Application.DoEvents() wystarczy?
dzięki wielkie
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
To wrzuc do osobnego watku. Jak chcesz powiadomienie, to stworz sobie zdarzenie i sie pod nie podepnij.
int i = db.ExecuteNonQuery(cmd);
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?
Wlasne zdarzenie, ktore bedzie wywolane w momencie zakonczenia kodu watku. Potrzebujesz powiadomienie o zakonczeniu?
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?
W takim razie najszybciej bedzie jak wykorzystasz BackgroundWorker. Podpinasz zdarzenia DoWork i RunWorkerCompleted i masz to czego szukasz.
hehe ok dzięki:)