728x90
this.Invoke(new MethodInvoker(delegate()
{
///
///처리 로직
///
}));
Delegate Sub SetTextCallback(ByVal [text] As String) 'txtPosition.Text 델리게이트 선언
'txtPosition.Text 델리게이트 선언
Private Sub SetText(ByVal [text] As String)
If Me.txtPosition.InvokeRequired Then
Dim d As New SetTextCallback(AddressOf SetText)
Me.Invoke(d, New Object() {[text]})
Else
' Me.Label6.Text = [text]
Me.txtPosition.Text = [text]
End If
End Sub
위의 C# 과 VB.NET 의 적용 방법을 나타내는 것인데 간단하게 하나를 나타 낸다면 이렇게 사용 하면 된다.
VB.NET 은 txtPosition 이 name 속성인 textbox 를 크로스 쓰레드로 적용한다.
아래 에서 보면 SetText 메서드를 실행할때 관련 textbox 가 invoke 가 필요 한지 확인 한 다음 만약 필요 하다면 델리 게이트로 선언된 것을 d 변수에 셋팅하고 그 델리게이트 변수를 invoke 함수를 이용하여 추출하여 뿌려준다.
만약 필요 없는 부분이라면 바로 txtPosition 텍스트 박스에 뿌려 준다.
실제 이런 작업은 여러게의 텍스트 박스에 동시에 부려 지는 것을 막기 위함 으로 미리 선언된 델리게이트는 동시 작업을 막아 주어 쓰레드의 엊갈림을 없애 준다.
728x90
'자료' 카테고리의 다른 글
C# VB.NET에서 현재 화면 스크린 캡쳐 (0) | 2020.08.03 |
---|---|
[C# / VB.net] InputHelper.PressKey /하드웨어 키입력 (0) | 2020.08.03 |
[VB.net/C#]Thread 초보자 가이드 (0) | 2020.08.03 |
[C#/VB.NET] 실행파일 위치(폴더)를 나타내는 메서드 (0) | 2020.08.02 |
javascript를 사용해서 xpath 클릭! (0) | 2020.07.29 |