[ sulja @ 23.01.2007. 13:15 ] @
Imam sledeci problem:
u aplikaciji se poziva operacija tacnije sub koji radi u thread-u, sub koji se u threadu na kraju zavrsenog posla treba da pokaze messagebox i to i uradi samo sto forma aplikacije nije disableovana za rad dok se messagebox ne zatvori, nego je moguce "skakati" sa messagebox prozora na formu aplikacije.
Probao sam da napravim delegate sub koji pozivam sa me.Invoke nakon obavljenog posla ali ne pomaze.

kod je otprilike ovakav:

Dim _WorkThread as new system.threading.thread(Addressof WorkingSub)
_WorkThread.Start()


Private Sub WorkingSub()

some working code here

Messagebox.Show("Work done")
End Sub

Nadam se da razumete sta me muci, unapred hvala.
[ dusans @ 23.01.2007. 13:32 ] @
Napravi na nekoj formi (najbolje na glavnoj, onoj koja je uvek vidljiva) metodu i delegata za nju koja prikazuje MessageBox, npr:
Code:


Delegate Sub ShowWorkDoneDelegate()

Public Sub ShowWorkDone()
    Messagebox.Show("Work done")
End Sub



A onda pozovi tu metodu preko control invoke-a u threadu ovako:
Code:


Private Sub WorkingSub()

    some working code here

    MainForm.Invoke(New ShowWorkDoneDelegate(AddressOf ShowWorkDone))
End Sub



S' tim da MainForm treba bude staticka promenljiva koja sadrzi na instancu glavne forme u tvojoj aplikaciji (ili one na kojoj si napravio gore navedene metode).

Pozdrav!
[ sulja @ 24.01.2007. 07:40 ] @
Ovaj kod lepo radi, ali je problem sto ja imam formu koja je child MDI forme, tako da i dalje mogu da selektujem formu (child formu) kada se iz thread-a podigne messagebox, cak i kada se to radi preko delegate sub-a