我在MP1Node
类上创建了一个队列,并从recvCallBack
方法添加到该队列。我的目标是在从member_list
找出nodeLoopOps
之后使用此队列发送消息。但是,只要msgQ
返回,此队列中的元素{@ 1}}就会丢失。我不明白为什么会这样。 checkMessages
是否在类的新实例中执行?为什么checkMessages()
不会持续存在?我怎样才能坚持下去?
msgQ
答案 0 :(得分:1)
很难从提供的骨架代码中确切地说出来。
但这部分有点可疑: 该队列被定义为保存Message类型的对象。 newMsg似乎是在方法recvCallBack()中创建的局部变量。使用Message实例调用scheduleMessage(),此时消息对象已入队。但是,因为Message实例newMsg具有本地范围,所以当recvCallBack()返回时,它将超出范围。
此时我可能希望队列中包含垃圾,但也许它显示为空。