|
Når vi gjør en skjemasøknad, trenger vi noen ganger informasjon om det nåværende skjemaet eller kalle kontrollene til andre skjemaer. Her introduserer jeg to metoder for å oppnå dette.
Når vi trenger å kalle kontroller fra andre former i et skjema, kan vi bruke kontroller. CheckForIllegaCrossThreadCalls=false; For eksempel: Button.CheckForIllegalCrossThreadCalls=false; Selvfølgelig kan vi også gjøre hele formen krysstrådet Form.CheckForIllegalCrossCrossThreadCalls=false; Dette gjør at vi kan få tilgang til kontrollene eller egenskapene til denne formen i andre former. Dette er kanskje ikke den tryggeste metoden, og noen ganger vil feilsøking gi oss en feil.
Her vil jeg introdusere en annen metode som kan nås på tvers av tråder. Invoke hopper inn på formtråden for å utføre funksjonen på delegaten
Først må vi erklære en kommisjon. offentlig delegat void DelSetTime(objekt str); Deretter trenger vi bare å forberede funksjonen som må utføres, offentlig void setTime (objekt str); Nå kan vi sette delegaten på tråden i skjemaet for å utføre Delegat d=ny DelsetTime(setTime); Dette. Invoke(d,Datetime.Now.ToString()); På denne måten kan vi oppnå krysstrådet tilgang.
Hvert skjema har en formtråd, som hovedsakelig er ansvarlig for å fullføre tegningen av formen og formkontrollene Denne tråden kaller vi formtråden eller hovedtråden. Mange ganger må vi legge til tråder i skjemaet for å behandle dataene, og så kan vi sette disse nyopprettede trådene som bakgrunnstråder når skjemaet lukkes Tråden vil også ta slutt. ThreadStart ths=ny ThreadStart(Demo); Tråd th= ny tråd(er); th. Start(); th. IsBackground=true;
Original: http://bingdao.sinaapp.com/net%E4%BD%93%E7%B3%BB/380.html
|