public void Update_TextBox(string text, int op) { PNode <tyShowOp> pnode = epool_show.Get(); tyShowOp show_node = pnode.obj; show_node.op = op; show_node.text = text; efifo_str_2_show.Input(show_node); event_txt_update.Set(); }
public COM() { efifo_raw_2_str.Init(tyRcvNode.RCV_NODE_NUM); //eFIFO能管理8K个元素 for (int i = 0; i < tyRcvNode.RCV_NODE_NUM; i++) //每个元素8K大小,一共64MB,如果收的比做得快,那只能丢失了 { //第一次收到10个,不满攒住,第二次收到4096,则会溢出! tyRcvNode rnode = new tyRcvNode(tyRcvNode.RCV_CACHE_SIZE + COM_BUFFER_SIZE_MAX); PNode <tyRcvNode> pnode = new PNode <tyRcvNode>(); rnode.pnode = pnode; epool_rcv.Add(pnode, rnode); //Dbg.WriteLine("Add node:{0} to ePool", rnode.GetHashCode()); } efifo_str_2_show.Init(tyShowOp.SHOW_NODE_NUM); //上面采用eFIFO搬运 for (int i = 0; i < tyShowOp.SHOW_NODE_NUM; i++) { tyShowOp snode = new tyShowOp(); PNode <tyShowOp> pnode = new PNode <tyShowOp>(); snode.pnode = pnode; epool_show.Add(pnode, snode); //Dbg.WriteLine("Add node:{0} to ePool", rnode.GetHashCode()); } timer_AutoSnd = new System.Timers.Timer(); //实例化Timer类,设置间隔时间为1000毫秒 timer_AutoSnd.Elapsed += new System.Timers.ElapsedEventHandler(timer_AutoSnd_Tick); //到达时间的时候执行事件 timer_AutoSnd.AutoReset = true; //设置是执行一次(false)还是一直执行(true) timer_AutoSnd.Enabled = false; //是否执行System.Timers.Timer.Elapsed事件 timer_AutoSnd.Interval = cfg.auto_send_inverval_100ms * 100; timer_RcvFlush = new System.Timers.Timer(); timer_RcvFlush.Elapsed += new System.Timers.ElapsedEventHandler(timer_RcvFlush_Tick); timer_RcvFlush.AutoReset = false; timer_RcvFlush.Enabled = false; timer_RcvFlush.Interval = 500; }