Robię program który updatuje informacje co jakąś ilość czasu.
metoda do update działa długo więc chciałbym wpakować ją w oddzielny wątek i pojawia mi się problem bo niby kod nie wskazuje nic źle ale w czasie trwania updatu timer nadal staje w miejscu na czas updateu na jakieś 10 sekund.
private void dodajwynikwatkudoglownego(object o)
{
if (this.InvokeRequired)
{
ParameterizedThreadStart z = new ParameterizedThreadStart(dodajwynikwatkudoglownego);
this.Invoke(z, o);
}
else
{
}
}
double wynikUpdate;
public void MetodaConvertujacaObjectdlawatkow(object o)
{
wynikUpdate = ZrobUbdate.UpdateCeny(Convert.ToInt16(o));
o = wynikUpdate;
dodajwynikwatkudoglownego(o);
}
public void timer1_Tick(object sender, EventArgs e)
{
string Query = " ";
this.Text = "Update at 300 sec's. Counting : " + ticks.ToString();
ticks++;
if (ticks == 30)
{
for (int i = 0; i < 9; i++)
{
ParameterizedThreadStart z = new ParameterizedThreadStart(MetodaConvertujacaObjectdlawatkow);
Thread watek = new Thread(z);
watek.Start(i);
if (i == 0)
{
zmiennadoupdate = ZrobUbdate.UpdateCeny(i);
dzialanie_CzyDoGory(zmiennadoupdate);
textboxTritanium.Text = zmiennadoupdate.ToString();
}
if (i == 1)
{
zmiennadoupdate = ZrobUbdate.UpdateCeny(i);
dzialanie_CzyDoGory(ZrobUbdate.UpdateCeny(i));
textBoxPyerite.Text = zmiennadoupdate.ToString();
}
if (i == 2)
{
zmiennadoupdate = ZrobUbdate.UpdateCeny(i);
dzialanie_CzyDoGory(ZrobUbdate.UpdateCeny(i));
textBoxMexallon.Text = zmiennadoupdate.ToString();
}
if (i == 3)
{
zmiennadoupdate = ZrobUbdate.UpdateCeny(i);
dzialanie_CzyDoGory(ZrobUbdate.UpdateCeny(i));
textBoxIsogen.Text = zmiennadoupdate.ToString();
}
if (i == 4)
{
zmiennadoupdate = ZrobUbdate.UpdateCeny(i);
dzialanie_CzyDoGory(ZrobUbdate.UpdateCeny(i));
textBoxNocxium.Text = zmiennadoupdate.ToString();
}
if (i == 5)
{
zmiennadoupdate = ZrobUbdate.UpdateCeny(i);
dzialanie_CzyDoGory(ZrobUbdate.UpdateCeny(i));
textBoxZydrine.Text = zmiennadoupdate.ToString();
}
if (i == 6)
{
zmiennadoupdate = ZrobUbdate.UpdateCeny(i);
dzialanie_CzyDoGory(ZrobUbdate.UpdateCeny(i));
textBoxMegacyte.Text = zmiennadoupdate.ToString();
}
if (i == 7)
{
zmiennadoupdate = ZrobUbdate.UpdateCeny(i);
dzialanie_CzyDoGory(ZrobUbdate.UpdateCeny(i));
textBoxMorphite.Text = zmiennadoupdate.ToString();
}
if (i == 8)
{
zmiennadoupdate = ZrobUbdate.UpdateCeny(i);
dzialanie_CzyDoGory(ZrobUbdate.UpdateCeny(i));
textBoxHydrogen.Text = zmiennadoupdate.ToString();
}
}
PolaczenieserverSQL.Open();
SqlDataReader SQLreader;
SqlCommand command = new SqlCommand(Query, PolaczenieserverSQL);
SQLreader = command.ExecuteReader();
command = null;
SQLreader.Dispose();
PolaczenieserverSQL.Close();
ticks = 0;
}
}
Jak zrobić lub co robię źle by timer spokojnie sobie chodzil podczas gdy w osobnym wątku robi się update?