通用 FromEvent 方法
在非同步程式設計的過程中,開發者經常遇到非同步等待事件的需要。傳統方法涉及為每個感興趣的事件手動編寫 FromEvent 方法。這種方法對於大量事件來說可能會變得乏味且容易出錯。
重構FromEvent 方法
為了解決這個問題,開發人員尋求一種通用的FromEvent 方法來處理任何類別中的任何事件,無需編寫多個特定方法。
挑戰與替代方案
一種方法涉及使用反射將事件名稱作為字串傳遞。但是,此方法引入了諸如缺乏智慧感知以及事件不存在時可能出現運行時錯誤等問題。
動態方法產生
更強大的解決方案涉及使用反射.Emit 產生與事件處理程序的簽章相符的動態方法。然後可以將此方法指派給事件,從而允許建立在事件觸發後完成的 TaskCompletionSource。
最佳化解決方案
提供的解決方案可以有效處理事件回傳無效。為了支援非void返回類型的事件,需要額外的程式碼最佳化,以確保與更廣泛場景的互通性。
實作
以下是最佳化的程式碼片段:
改善功能
此改進的實作提供了以下增強功能:
透過利用提供的程式碼,開發人員可以無縫等待來自任意類型的事件,從而增強.NET 中非同步程式設計的可用性和效率。
以上是通用「FromEvent」方法如何簡化 .NET 中的非同步事件處理?的詳細內容。更多資訊請關注PHP中文網其他相關文章!