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