现在的位置: 首页 > 综合 > 正文

C#跨线程访问方法

2012年08月14日 ⁄ 综合 ⁄ 共 863字 ⁄ 字号 评论关闭

 

代码


private delegate void WriteToRbxMsgHandle(string msg, bool isError);
private void WriteToRbxMsg(string msg,bool isError)
{
if (!this.rbxWorkingMsg.InvokeRequired)
{
WriteToRbxMsgDMethod(msg, isError);
}
else
{
this.rbxWorkingMsg.Invoke(new WriteToRbxMsgHandle(WriteToRbxMsgDMethod), msg, isError);
}

}

private void WriteToRbxMsgDMethod(string msg, bool isError)
{
if (isError)
{
this.rbxWorkingMsg.SelectionColor = Color.Red;
}
else
{
this.rbxWorkingMsg.SelectionColor = Color.Black;
}
this.rbxWorkingMsg.SelectedText = msg + "\n";
this.rbxWorkingMsg.Focus();
this.rbxWorkingMsg.Select(this.rbxWorkingMsg.Text.Length, 0);

}

简单的:需要提前声明一个委托:PortNumberReadyEventHandler

 

 

代码

void tcpReceiver_PortNumberReady(object Sender, PortNumberReadyEventArgs PNR)
{
if(this.InvokeRequired)
{
PortNumberReadyEventHandler del
= delegate(object sender, PortNumberReadyEventArgs pnr)
{
this.Text += pnr.PortNum.ToString();
};
this.Invoke(del ,this,PNR);
}
}

 

 

抱歉!评论已关闭.