|
양식 신청을 할 때는 현재 양식에 대한 정보를 얻거나 다른 양식의 컨트롤을 호출해야 할 때가 있습니다. 여기서는 이를 달성하기 위한 두 가지 방법을 소개합니다.
폼 내 다른 형태에서 제어를 호출해야 할 때는 제어를 사용할 수 있습니다. CheckForIllegaCrossThreadCalls=false; 예를 들어: Button.CheckForIllegalCrossThreadCalls=false; 물론, 전체 폼을 크로스 스레드로 만들 수도 있습니다 Form.CheckForIllegalCrossThreadCalls=false; 이를 통해 우리는 이 형태의 제어나 속성에 다른 형태로 접근할 수 있습니다. 이 방법이 가장 안전하지 않을 수 있으며, 때때로 디버깅 시 오류가 발생할 수 있습니다.
여기서는 스레드를 넘어 접근할 수 있는 또 다른 방법을 소개하겠습니다. Invoke는 delegate에서 함수를 실행하기 위해 폼 스레드로 점프합니다
먼저, 위원회를 선언해야 합니다. public delegate void DelSetTime(object str); 그다음 실행해야 할 함수를 준비하면 됩니다, 공공 공허 setTime(object str); 이제 대리인을 폼의 스레드에 입력해 실행할 수 있습니다 Delegate d=new DelsetTime(setTime); 이거. Invoke(d, Datetime.Now.ToString()); 이렇게 하면 크로스 스레드 접근을 달성할 수 있습니다.
각 폼에는 폼 스레드가 있으며, 주로 폼 드로잉과 폼 컨트롤을 담당합니다 이 스레드를 폼 스레드 또는 메인 스레드라고 부릅니다. 많은 경우 데이터를 처리하기 위해 폼에 스레드를 추가해야 하고, 그 다음에는 폼이 닫힐 때 새로 생성된 스레드들을 백그라운드 스레드로 설정할 수 있습니다 스레드도 끝납니다. ThreadStart ths=new ThreadStart(Demo); 스레드 th= 새 스레드(ths); th. Start(); th. IsBackground=true;
원본: http://bingdao.sinaapp.com/net%E4%BD%93%E7%B3%BB/380.html
|