의 WinForm 프로그램 불평 직접 액세스 컨트롤의 배경 스레드 실행 방법에 직접 배경 스레드 인터페이스의 경우가 발생할 때, 이때, 우리는 간접적 인 스레드 간 동작 제어를 사용한다. 여기에 두 가지 구현입니다.
델리게이트 정의 방식을 사용하여 (1)
개인 대리인 공극 SetTextBoxValueDelegate ( 문자열 값); 전용 공간 SetTextBoxValue ( 문자열 값) { 경우 ( 이 .txtInfo.InvokeRequired) // 判断是否跨线程请求 { SetTextBoxValueDelegate myDelegate = 대리자 ( 문자열 텍스트) {= txtInfo.Text 텍스트; }; txtInfo.Invoke (myDelegate, 값); } 다른 { txtInfo.Text = 값; } }
액션을 사용하여 2 <T> 방식 (권장)
전용 공간 SetTextBoxValue ( 문자열 값) { 조 < 문자열 > setValueAction 텍스트 = => txtInfo.Text = 텍스트; // 액션 <T>本身就是대리인类型,省掉了대리자的定义 경우 ( 이 .txtInfo.InvokeRequired) { txtInfo.Invoke (setValueAction, 값); } 다른 { setValueAction (값); } }
HTTPS : //www.cnblogs.com/conexpress/p/WinForm_Thread_Operate_Control.html 재현