|
Când facem o aplicație de formular, uneori trebuie să obținem informații despre formularul curent sau să apelăm la controalele altor formulare. Aici introduc două metode pentru a realiza acest lucru.
Când trebuie să apelăm controale din alte forme într-o formă, putem folosi controale. CheckForIllegaCrossThreadCalls=false; De exemplu: Button.CheckForIllegalCrossThreadCalls=false; Desigur, putem face și întregul formular încrucișat Form.CheckForIllegalCrossThreadCalls=false; Acest lucru ne permite să accesăm controalele sau proprietățile acestei forme în alte forme. Aceasta poate să nu fie cea mai sigură metodă, iar uneori depanarea ne va da o eroare.
Aici voi introduce o altă metodă care poate fi accesată între fire. Invoke sare pe firul de formulare pentru a executa funcția pe delegat
În primul rând, trebuie să declarăm o comisie. public delegate void DelSetTime(object str); Apoi trebuie doar să pregătim funcția care trebuie executată, public void setTime(object str); Acum putem pune delegatul pe firul formularului pentru a executa Delegat d=nou DelsetTime(setTime); Asta. Invocă(d,Date.Acum.ToString()); Astfel putem obține acces cross-threaded.
Fiecare formular are un fir de discuție, care este responsabil în principal pentru finalizarea desenului formularului și pentru controalele formularului Acest fir îl numim firul formular sau firul principal. De multe ori trebuie să adăugăm fire în formular pentru a procesa datele, iar apoi putem seta aceste fire nou create ca fire de fundal când formularul este închis Firul de discuție se va încheia și el. ThreadStart ths=new ThreadStart(Demo); Thread th= thread nou(ths); th. Start(); th. IsBackground=adevărat;
Original: http://bingdao.sinaapp.com/net%E4%BD%93%E7%B3%BB/380.html
|