이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 17697|회답: 0

[출처] 크로스 스레드 연산이 유효하지 않음: 제어 'txtresult'가 threa...

[링크 복사]
게시됨 2015. 12. 14. 오후 3:27:31 | | |

양식 신청을 할 때는 현재 양식에 대한 정보를 얻거나 다른 양식의 컨트롤을 호출해야 할 때가 있습니다.

여기서는 이를 달성하기 위한 두 가지 방법을 소개합니다.


폼 내 다른 형태에서 제어를 호출해야 할 때는 제어를 사용할 수 있습니다. 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     






이전의:두 자리 문자 배열의 입력은 출력이 이루어질 때 정렬됩니다
다음:【iOS 개발 시리즈 튜토리얼, 여름에 공개됨】아이폰 튜토리얼
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com