크로스 - 스레드의 WinForm 제어 동작

의 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 재현

추천

출처blog.csdn.net/weixin_33912453/article/details/93352531