我只是Async從書本上學(xué)習(xí)編程,呵呵!他們的例子不起作用。作者(WebAPI2 書中的 Adam Freeman,第 3 章,第 47 頁(yè)?。┫胍忉屢环N技術(shù),當(dāng)我們有一系列同步語(yǔ)句并且我們想要執(zhí)行它們時(shí)Async。他說(shuō)這是通過(guò)創(chuàng)建一個(gè)啟動(dòng)任務(wù)來(lái)完成的,該任務(wù)包裝我們需要執(zhí)行的語(yǔ)句并返回任務(wù)作為方法的結(jié)果。然后他說(shuō)看這個(gè)例子。好驚喜!它甚至不起作用,因?yàn)樗鼰o(wú)法從 轉(zhuǎn)換long為Task<long>我該如何修復(fù)這段代碼?public interface ICustomController{ Task<long> GetPageSize(CancellationToken cancellationToken);}public Task<long> GetPageSize(CancellationToken cancellationToken){ WebClient wb = new WebClient(); Stopwatch sw = Stopwatch.StartNew(); List<long> results = new List<long>(); for(int i=0; i<10; i++) { if (!cancellationToken.IsCancellationRequested) { Debug.WriteLine("Making Request {0} ", i); results.Add(wb.DownloadData(TargetUrl).LongLength); } else { Debug.WriteLine("Cancelled..."); return 0; } } Debug.WriteLine("Elapsed ms: {0} ", sw.ElapsedMilliseconds); return (long)results.Average();}請(qǐng)注意,他故意從方法中刪除了aysncand ,以便他可以解釋這種技術(shù)......但他忘記了實(shí)際修復(fù)他的代碼。await
將 Long 轉(zhuǎn)換為 Task<long>
狐的傳說(shuō)
2023-08-20 15:11:09