참고 : 일련의 부분 : C#: Accessing form members from another class 및 How to access form objects from another cs file in C#. C에서 다른 스레드의 Invoke를 사용하여 클래스 멤버에 액세스
헬로
,아이디어는 패킷이 TCP 클라이언트로 전송/수신 될 때 메모를 이용하여 사용자에게 통지한다.
는 수정의 몇 후, 가장 적합한 솔루션은 코드가 있기 때문에 안전하지 않은 스레드의 예외를 throw 호출, 그것은 그러나var form = Form.ActiveForm as Form1;
if(form != null)
form.TextValue = "Test asdasd";
를 호출되고있어 방법이 하나
public string TextValue
{
set
{
this.Memo.Text += value + "\n";
}
}
될 듯 전화. msdn에 해결책을 찾았지만, 거기서 사용한 방법을 얻을 수없는 것 같습니다.
이것은 제 리메이크로 작동하지 않습니다.
private void SetTextMemo(string txt)
{
if(this.Memo.InvokeRequired)
{
this.Invoke(SetTextMemo,txt); //error here
}
else
{
this.Memo.Text += txt + "\n";
}
}
오류 :
인자는 '1' 'System.Delegate'
인수에 '있어서 기'로 변환 할 수없는 '2' '문자열'로 변환 할 수있는 객체로 [ ] '
기본적으로 Invoke를 사용하여 다른 스레드에서 메모에 액세스하려고합니다 (또는 메모에 텍스트를 추가하는 경우). 이전에는 사용하지 않았기 때문에 실수를 오해 한 것 같습니다.
이벤트 사용은 어떻게됩니까? – bytebender