|
Когато подаваме заявление за формуляр, понякога трябва да получим информация за текущия формуляр или да извикаме контролите на други формуляри. Тук представям два метода за постигане на това.
Когато трябва да извикваме контроли от други форми във форма, можем да използваме контроли. CheckForIllegaCrossThreadCalls=false; Например: Button.CheckForIllegalCrossThreadCalls=false; Разбира се, можем да направим цялата форма крос-нишкова Form.CheckForIllegalCrossThreadCalls=false; Това ни позволява да достъпваме контролите или свойствата на тази форма в други форми. Това може да не е най-безопасният метод, а понякога дебъгването ни дава грешка.
Тук ще представя още един метод, който може да бъде достъпен в различни нишки. Invoke скача към нишката на формата, за да изпълни функцията на делегата
Първо, трябва да обявим комисия. public delegate void DelSetTime (object str); След това просто трябва да подготвим функцията, която трябва да бъде изпълнена, публичен void setTime(object str); Сега можем да поставим делегата върху нишката на формата за изпълнение Delegate d=нов DelsetTime(setTime); това. Invoke(d,Datetime.Now.ToString()); По този начин можем да постигнем крос-нишков достъп.
Всяка форма има нишка за форма, която основно отговаря за завършването на чертежа на формуляра и контролите на формата Тази нишка се нарича форма или основна нишка. Много пъти трябва да добавим нишки към формата, за да обработим данните, и след това можем да зададем тези новосъздадени нишки като фонови нишки, когато формата е затворена Темата също ще приключи. ThreadStart ths=нов ThreadStart(Демо); Thread th= нова Thread(ths); th. Start(); th. IsBackground=вярно;
Оригинал: http://bingdao.sinaapp.com/net%E4%BD%93%E7%B3%BB/380.html
|