c# invoke奇怪的问题。高手指教
俺有一个队列每次的错误数据存在队列里面,然后又一个处理线程取队列数据里面的数据。再把数据Invoke到界面上显示。
出了个奇怪的问题。在界面显示处理函数里面用messagebox.show 界面上的数据有改变。但是把这个去掉显示不出来。
下面是代码,高手救命。
//处理线程
public delegate void TProcData(CallPacket APacket);
private TProcData FProcData;
private Form FForm;
protected override void InternalRun()
{
CallPacket APacket;
while (FRun)
{
APacket = FQueue.GetData();
if (APacket!=null)
{
TProcData AProcData = new TProcData(FProcData);
FForm.Invoke(AProcData, new object[] { APacket });
}
}
}
public ProcThread(Queue queue, TProcData aprocdata,Form form)
{
FQueue = queue;
FProcData = aprocdata;
FForm = form;
}
//处理函数
public void ProcData(CallPacket APacket)//处理服务器返回的Info消息
{
switch (APacket.GetReqId())
{
case "INFO":
{
tCurrNum.Text = APacket.GetParam(0);
tWaitNum.Text = APacket.GetParam(1);
break;
}
case "LOGOUT":
{
tOprStatus.Text = "状态:";
ttatus.Text = "排队服务器断开";
loginOk = false;
RefreshControl();//刷新控件
Update();
break;
}
}
}
请高手救命