大家好;上次我问了大家一个问题,就是在1ms通讯一次的前提下,如何使得界面刷新的时候,窗口控件不会死掉?
得到的答案是:用多线程或异步,我最终选择了异步,发现结果良好,可行,效果不错这次我想在加一个东西,就是有2个窗口,同时要刷新着1ms的数据(刷新的对象是一样的,只不过一个窗口以textbox来体现,另一个窗口以波形来体现)那么这样的话,怎么搞呢?我自己尝试了用2个异步,第一个异步就是刷新本窗口的textbox(数据在textbox的哪个窗口接收到),第二个异步中用了"this.invoke"委托给窗口2让窗口2刷新波形;这样的结果是,发现第一个异步刷新textbox还是很不错,
但是第二个异步刷新zedgraph的波形时,刚开始都很好,但是刷了大概1W的点左右时,窗口2(波形所在窗口全部死掉),而原来的textbox窗口依然完好无恙;
请问这是为什么呢?是我的第二个异步的语句写的不对吗?(我是这么写的)
开始委托: Asyn_Oper_ObjectWave.BeginInvoke(new AsyncCallback(CallBackboxing), Asyn_Oper_ObjectWave);回调:public void CallBackboxing(IAsyncResult ar)
        {
            temp_testwave obj = (temp_testwave)ar.AsyncState;
            try
            {
                obj.EndInvoke(ar);
            }
            catch
            {
            }
        }最终执行的函数:
private void updateboxing()
        {
            this.Invoke(form2event, a, b, c, d, e, f);
        }窗口2就是正常的zedgraph画图上面的写法是错误的吗?第二个委托给窗口2画波形的写法是不是有误?是不是不该在异步的函数中写"this.invoke"?还请高手指教了,我的目标就是上面写的,要两个不同的窗口同时1ms刷新数据,但现在只能流畅的实现一个,另外一个不行,小弟跪求指导谢谢了