这个问题可能对我来说真的很容易,但是我真的不知道该怎么做。
我创建了一个包含多个互相调用的方法的类(第一个执行一些逻辑,然后调用第二个,依此类推)。由于等待外部服务器的POST和GET方法,所有这些方法都是异步的。
我想调试我的工作,以查看每个阶段的工作方式以及我在哪里出错了,但我不知道如何做。我尝试直接从主函数调用第一个函数并添加一个断点,但是在“ addi”之后缺少了“ await”的产量 n“等待”,我得到的收益是我需要使该方法异步,这与我的目的背道而驰。
我该怎么办?
public static void Main(string[] args)
{
await LoadCampaignTempleteJSONAsync();
}
我只想遵循LoadCampaignTempleteJSONAsync
的过程。
答案 0 :(得分:3)
从Main调用异步方法的最简单方法是调用Result
或GetAwaiter().GetResult()
:
public static void Main(string[] args)
{
LoadCampaignTempleteJSONAsync().Result;
LoadCampaignTempleteJSONAsync().GetAwaiter().GetResult();
}
此外,从C#7.1开始,您可以使Main异步:
public static async Task Main(string[] args)
{
await LoadCampaignTempleteJSONAsync();
}
答案 1 :(得分:0)
请尝试以下
class Program
{
static void Main(string[] args)
{
var p = new Program();
p.Run();
}
private async void Run()
{
await LoadCampaignTempleteJSONAsync();
}
private static Task LoadCampaignTempleteJSONAsync()
{
//Put breakpoint here!
throw new NotImplementedException();
}
}
并在LoadCampaignTempleteJSONAsync()
内放置一个断点
这将达到断点