小编yor*_*ork的帖子

为什么等待有时会创建新线程,但有时不会?

    class Program
{
    static void Main(string[] args)
    {
        var rst = DownloadPage("http://www.baidu.com");
        //var rst2=GetString();

        Console.ReadKey();
    }

    private static async Task<string> DownloadPage(string url)
    {
        using (var client = new HttpClient())
        {
            PringMsgWithThreadId("Before await");
            var response = await client.GetAsync(url).ConfigureAwait(continueOnCapturedContext:false);
            var content= await response.Content.ReadAsStringAsync();

            PringMsgWithThreadId(content.Substring(0, 10));
            PringMsgWithThreadId("After await");
            return content;
        }
    }

    private static async Task<string> GetString()
    {
        PringMsgWithThreadId("Before await");
        var result = await GetStringAsync();

        PringMsgWithThreadId(result);
        PringMsgWithThreadId("After await");
        return result;
    }

    private static Task<string> GetStringAsync()
    {
        var task = new Task<string>(() =>
          { …
Run Code Online (Sandbox Code Playgroud)

c# multithreading asynchronous async-await

0
推荐指数
1
解决办法
65
查看次数

标签 统计

async-await ×1

asynchronous ×1

c# ×1

multithreading ×1