Multiwątkowość a zawieszone GUI - WinForms

0

Witam, mam problem z aplikacją c#, GUI w winforms.

Problem polega na tym że aplikacja (jej GUI) zawiesza się podczas wykonywania pracy, pomimo że jest wykonywana "teorytycznie" w osobnym wątku...

kawałek kodu:

 
private delegate void click_highlighted(object obj);

private void t_Click(obj form){
//Pracuje (długo)
}

private void btn_excute_highlighted_Click(object sender, EventArgs e)
{
      click_highlighted click = new click_highlighted(t_Click);
      click.BeginInvoke(this,null,null);
}

Próbowałem też zrobić Thread, następnie Thread.Start() - efekt ten sam.

Gdy uruchamiam kod niby mija nawias klamrowy po BeginInvoke (breakpoint), ale chwile potem VS pokazuje że "MainThread" jest już w kodzie t_Click....

To samo przy innym sposobie uruchamiania "pracownika". Bardzo byłbym wdzięczny za wskazówki co robie nie tak...

0

Gościu, pokaż ten kod z dodatkowym wątkiem, który "rzekomo" miał obsługiwać to, co przycisk. Jeśli utworzyłeś nowy wątek i potem go odpaliłeś, to wybacz, ale... zrobiłeś dokładnie to, co napisałem. Ten wątek w żaden sposób nie był powiązany z tym, co Ty chciałeś, aby wykonywał.

0

Szczerze mówiąc kompletnie nie rozumiem o czym piszesz....

Całe szczęście znalazłem winowacje. Wszystko działało by po mojej myśli gdyby nie to że w wątku "pracującym" źle użyłem Invoke() do operacji na Formularzu...

Tworzyłem wątek-> odpalałem -> wątek pracował a potem odpalał Invoke() na formularzu, które... wracało do głównego wątku(tak jak powinno, ale nie widziałem o tym).

Mimo wszystko dzięki za chęci. :)

0

Pokazałeś po prostu ZA MAŁO KODU.

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