且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在.net Core,C#中并行校准API调用的***方法是什么?

更新时间:2023-02-09 15:51:07

方法2已关闭.这是一条经验法则:I/O绑定操作=>使用Tasks/WhenAll(异步),计算绑定操作=>使用并行性.Http请求是网络I/O.

Approach number 2 is close. Here's a rule of thumb: I/O bound operations=> use Tasks/WhenAll (asynchrony), compute bound operations => use Parallelism. Http Requests are network I/O.

            foreach (var post in list)
            {
                async Task<string> func()
                {
                    var response = await client.GetAsync("posts/" + post);
                    return await response.Content.ReadAsStringAsync();
                }

                tasks.Add(func());
            }

            await Task.WhenAll(tasks);

            var postResponses = new List<string>();

            foreach (var t in tasks) {
                var postResponse = await t; //t.Result would be okay too.
                postResponses.Add(postResponse);
                Console.WriteLine(postResponse);
            }