|
När vi gör en formuläransökan behöver vi ibland få information om det aktuella formuläret eller anropa kontrollerna för andra formulär. Här introducerar jag två metoder för att uppnå detta.
När vi behöver anropa kontroller från andra former i ett formulär kan vi använda kontroller. CheckForIllegaCrossThreadCalls=false; Till exempel: Button.CheckForIllegalCrossThreadCalls=false; Självklart kan vi också göra hela formen tvärtrådad Form.CheckForIllegalCrossCrossThreadCalls=false; Detta gör att vi kan få tillgång till kontrollerna eller egenskaperna hos denna form i andra former. Detta kanske inte är den säkraste metoden, och ibland ger felsökning oss ett fel.
Här kommer jag att introducera en annan metod som kan nås över trådar. Invoke hoppar in på formtråden för att köra funktionen på delegaten
Först måste vi utlysa en kommission. offentlig delegat ogiltig DelSetTime (objektstyrka); Sedan behöver vi bara förbereda funktionen som ska exekveras, public void setTime (objekt str); Nu kan vi placera delegaten på tråden i formuläret som ska exekveras Delegat d=ny DelsetTime(setTime); Exakt så. Invoke(d,Datetime.Now.ToString()); På så sätt kan vi uppnå korstrådad åtkomst.
Varje form har en formtråd, som huvudsakligen ansvarar för att slutföra ritningen av formen och formkontrollerna Denna tråd kallar vi formtråden eller huvudtråden. Många gånger behöver vi lägga till trådar i formuläret för att bearbeta datan, och sedan kan vi sätta dessa nyskapade trådar som bakgrundstrådar när formuläret stängs Tråden kommer också att ta slut. ThreadStart ths=ny ThreadStart(Demo); Tråd th= ny tråd(t); Th. Start(); Th. IsBackground=true;
Original: http://bingdao.sinaapp.com/net%E4%BD%93%E7%B3%BB/380.html
|