2012-12-12 23 views
3

我正在嘗試編寫一個接受財務數據請求並隨後通過觸發事件異步提供數據的matlab類。整個邏輯可以定義如下。Matlab:OOPS:Event Block:動態地(以編程方式)在運行時添加事件

1)獲取與回調FUNC手柄(@func)

2)添加一個監聽器與事件名稱 「evnt_SecId」 和回調FUNC @func安全性(SecId數據)請求。

3)收集所有數據,通過證券和特定於特定安全性的激發事件過濾它們。

現在,一切似乎都很容易和可行的Matlab除了我不能動態定義事件。目前,我必須爲{events ... end}塊中的每個SecId定義事件。

有沒有人知道在請求到達時動態聲明事件的方法?

替代解決方案,我想到:我可以有一個更新「事件」和所有與它關聯的偵聽器,而SecId的過濾發生在回調中。由於性能原因,此解決方案是不可接受的。

回答

1

如何:

  1. 化妝SecId dynamicprops
  2. 的一個子類
  3. 而不是添加一個普通聽衆的,添加後集propListener和動態添加 新屬性
  4. 通過設置發送郵件物業的價值。

我不知道該解決方案的性能特點,但它可能會做你所需要的。

+0

我喜歡這種處理事件的方式。但是,我也有eventData,我想傳輸到偵聽器回調。有了財產事件,我無法控制eventData,對吧? – Vibhor

+0

找到了一個解決方案: – Vibhor

+0

找到了一個更簡單的方法:不是通過不同的事件尋址不同的事件偵聽器,更好的方法是有一個單一的公共事件,但有多個對象與每個SecId關聯。無論如何管理所有SecId對象的列表,甚至不需要通過動態屬性路由。感謝Sam爲此發出指示。 – Vibhor

1

如何在「主」事件觸發方法中過濾SecId?這樣,每次觸發事件只發生一次過濾。該類必須將它與其註冊的SecId相關聯的監聽器關聯起來。

相關問題