記的上次看過UniRx里的源代碼,說是參考微軟的響應式編程框架,響應式編程里的一些理論不細說,只單說UniRx里的事件流里的事件壓入與執(zhí)行,與UE4的渲染線程設計有很多相同之處,如果有了解響應式編程相關源碼如UniRx,應該對UE4的渲染線程流程容易理解。

  在這先說下UniRx相應事件流的處理,讓不了解的同學大致有點印象,如當前線程計劃,一般首先有個隊列,在相應事件響應后,把相應處理方法填充到隊列中,另一邊則在隊列里,根據(jù)先進先出的原則,不斷執(zhí)行隊列里的方法。說起來比較簡單,主要是這里只拿出UniRx里的一個執(zhí)行計劃的事件流來說,另外的相關響應式編程概念與本文無關,也就不提起來說。

  回到正題,說了UE4渲染流程的設計與上面很多相同,如此,我們先簡單來說明下相關UE4里的類,與上面說的來對應。

  FBaseGraphTask: 上面說到事件流,那么這個類在這,就是事件流里的每個事件。

  TGraphTask: FBaseGraphTask的一個子類模版類,模版類要求有方法DoTask.(注意這里,后面要說。相應在此處簡單理解成C#里的泛型約束,雖然C#直接做不到這點,可以簡接使用泛型約束加接口實現(xiàn))

  FTaskThreadBase: 簡單來說,這個類里放的是事件流,以及相應處理事件流的一些方法,如

    EnqueueFromThisThread: 壓入事件流中。

    ProcessTasksUntilQuit: 循環(huán)執(zhí)行事件流里方法,直到有要求結束信號。

    IsProcessingTasks: 是否正在執(zhí)行方法。

延伸閱讀

學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設計培訓,網(wǎng)站建設培訓學習是年輕人改變自己的最好方式