我想知道在使用TPL TaskFactory.FromAsync
和使用TaskFactory.StartNew
阻塞版本的方法之間是否有任何性能影響。我正在寫一個支持不超過100個併發連接的TCP服務器。在用第一個選項&編寫代碼之後,連續多次讀取&寫入操作,結果我留下了難看,難以調試的代碼。TPL TaskFactory.FromAsync vs帶阻塞方法的任務
我相信用同步版本&編寫代碼,然後用Task包裝它會降低複雜性&增加可測試性,但是我擔心這樣做的性能影響。
例如,是否有這兩個電話之間的性能差異:
NetworkStream stream;
byte[] data;
int bytesRead;
//using FromAsync
Task<int> readChunk = Task<int>.Factory.FromAsync (
stream.BeginRead, stream.EndRead,
data, bytesRead, data.Length - bytesRead, null);
//using StartNew with blocking version
Task<int> readChunk2 = Task<int>.Factory.StartNew(() =>
stream.Read(data, bytesRead, data.Length - bytesRead));
你有這不能不調用Web方法的任何資源(例如)使用Begin/End和Async比使用Async同步版更好?你說什麼是有道理的,我只是喜歡在官方的地方閱讀它。 – 2012-06-27 12:36:50