我正在使用第三方套接字庫,雖然這有點與我的問題無關。該庫由一個「Socket」類組成,其中包含諸如「ConnectAsync」和「WriteAsync」之類的方法。控制在調用其中一個方法後立即返回,並且套接字類引發事件以在操作完成時通知,例如, 「ConnectCompleted」和「WriteCompleted」。當收到數據時,該類還會引發一個事件:「PacketArrived」。C#如何包裝事件驅動的代碼與回調
在我的應用程序中,我想發送數據並等待回覆。因爲這可能發生在許多地方,所以將上面的套接字類包裝在某種幫助程序中是很有意義的,這些幫助程序完成了所有這些工作。我也想它是異步的,所以用戶界面(WPF)未連接/寫過程中凍結/等待回覆,所以輔助方法調用可能是這個樣子: -
SocketHelper.SendData(dataToSend, myCallback);
在哪裏「當收到數據時調用myCallback。
作爲線程新手,我不確定如何編寫此幫助程序 - 它需要將各種方法和事件串聯在一起,即打開連接,等待連接完成,寫入數據,等待爲了寫入完成,然後等待數據包到達(然後調用提供的回調)。任何幫助讚賞。
開始通過讀取C#事件和委託HTTP底漆://www.akadia。com/services/dotnet_delegates_and_events.html我認爲包裝庫可能是一個過度的橋樑,你不需要通過.NET事件機制傳遞迴調。 –
哪個框架版本? .NET 4有任務並行庫來幫助解決這些問題 –
@PanagiotisKanavos它是.Net 4 –