2013-12-19 76 views
1

大多數蜱精細下降蜱,但往往一些蜱缺少爲什麼是我的代碼在BLPAPI

僞代碼:

Foreach Message msg in myEvent 
    { 
     if (m.hasField(BID)) 
     { 
      handlebid(m.getFieldasFloat64(BID); 
     } 

     if (m.hasField(BID_SIZE)) 
     { 

      int bidsize=m.getFieldasInt(BID_SIZE); 
      if (bidsize==0) 
      { 
        return -1; 
      } 
      handlebidsize(bidsize); 
     } 

     if (m.hasField(ASK)) 
     { 
      handleask(m.getFieldasFloat64(ASK); 
     } 

     if (m.hasField(ASK_SIZE)) 
     { 
      int asksize=m.getFieldasInt(ASK_SIZE); 
      if (asksize==0) 
      { 
        return -1; 
      } 
      handleasksize(asksize); 
     } 
} 

回答

1

活動可以包含多個消息

如果你的事件處理程序以任何方式執行返回或跳出循環,而不是進入下一個循環迭代,那麼在觸發循環退出的事件之後的事件中的任何消息將不會被處理。在這些消息的任何蜱蟲會「下降」

永遠不會退出的事件處理循環回用或打破

1

格倫·泰特鮑姆是正確的,一個事件可以包含多個消息。你可能會放棄滴答的另一個原因是一個請求可能會導致多個響應:幾個部分響應和一個響應。確保你處理兩種類型的響應,並且你調用nextEvent()直到你得到一個響應事件(而不是部分響應)。