相关疑难解决方法(0)

如何在例如Main()中调用async方法?

public class test
{
    public async Task Go()
    {
        await PrintAnswerToLife();
        Console.WriteLine("done");
    }

    public async Task PrintAnswerToLife()
    {
        int answer = await GetAnswerToLife();
        Console.WriteLine(answer);
    }

    public async Task<int> GetAnswerToLife()
    {
        await Task.Delay(5000);
        int answer = 21 * 2;
        return answer;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我想在main()方法中调用Go,我该怎么做?我正在尝试c#新功能,我知道我可以将异步方法挂钩到事件并通过触发该事件,可以调用异步方法.

但是如果我想直接在main方法中调用它呢?我怎样才能做到这一点?

我做了类似的事情

class Program
{
    static void Main(string[] args)
    {
        test t = new test();
        t.Go().GetAwaiter().OnCompleted(() =>
        {
            Console.WriteLine("finished");
        });
        Console.ReadKey();
    }


}
Run Code Online (Sandbox Code Playgroud)

但似乎这是一个死锁,屏幕上没有任何内容.

c# asynchronous task async-await

58
推荐指数
6
解决办法
5万
查看次数

为什么在 C# 中使用 HttpClient 时收到“响应提前结束”?

我在 .Net Core 中的第一个 HTTP 客户端代码。服务器也在我的电脑上运行,所以我想将其发送到本地主机。

在有人在这里推荐之后,我添加了内部异常的打印,但这不足以让我理解这个问题。

namespace HTTPClient
{
    // The object I want to send
    public class Msg
    {
        public string ID { get; set; }
        public string Data { get; set; }
        public int RSSIR { get; set; }
        public int RSSIT { get; set; }
        public int Slot { get; set; }
    }

    class Program
    {
        static Msg msg = new Msg
        {
            ID = "00CC",
            Data = "9F4CC",
            RSSIR = 123, 
            RSSIT = 321,
            Slot …
Run Code Online (Sandbox Code Playgroud)

c# http httpclient .net-core

9
推荐指数
1
解决办法
3万
查看次数

标签 统计

c# ×2

.net-core ×1

async-await ×1

asynchronous ×1

http ×1

httpclient ×1

task ×1