delegate void RecvMsgCallback(string s);//아래 함수를 콜백 함수로 설정 private void RecvMsg(string s) { //델리게이트 함수가 되어 다른 쓰레드에서 호출되면 메인 쓰레드에서 값을 바꿀 수 있다 //InvokeRequired는 다른 쓰레드에서 호출이 요구되는 경우를 뜻함 if (this.RecvMsgBox.InvokeRequired) { //콜백 함수로 현재 함수포인터를 넘겨서 생성 RecvMsgCallback recv = new RecvMsgCallback(RecvMsg); this.Invoke(recv, new object[] { s }); //Invoke를 실행해 아래 else구문을 실행하도록 한다. } //아래 내용을 실행한다. else { RecvMsgBox.Text += s; RecvMsgBox.Text += "\r\n"; } }
extern static public int WXRecvTextMsg(uint pid, RecvMsgCallback funptr);