在即时窗口 Visual Studio 中调用异步方法

use*_*346 10 immediate-window visual-studio async-await

我停在了一个断点上,我需要观察在这种情况下使用立即窗口调用异步函数的结果。所以我试过了

var things = await Client.GetThingsAsync("aParameter");
Run Code Online (Sandbox Code Playgroud)

“await”运算符只能在异步方法中使用。考虑使用“async”修饰符标记此方法并将其返回类型更改为“Task”。

但是断点已经在异步方法中了。我也试过跑

var things = Client.GetThingsAsync("aParameter");
Run Code Online (Sandbox Code Playgroud)

“评估需要一个线程临时运行。使用观察窗口执行评估。”

所以我尝试了 Watch 窗口

ClientGetThingsAsync("aParameter").Result;
Run Code Online (Sandbox Code Playgroud)

“函数评估需要所有线程运行。”

编辑代码和重新构建让我很崩溃,因为每次构建需要 15 分钟。调试时可以使用哪些策略来调用异步调用?

小智 13

在监视窗口中,单击消息右侧的小图标。 在此输入图像描述


Ric*_*ard 8

你需要手动做事——没有await.

var things = ClientGetThingsAsync("aParameter").Result;
Run Code Online (Sandbox Code Playgroud)

正如编译器所指出的,您需要一个async在其中使用的函数await,但在使用立即窗口时您无法控制该函数。

  • “评估需要一个线程临时运行。使用监视窗口来执行评估。” (5认同)
  • 我使用 ClientGetThingsAsync("aParameter").Result; 我得到“函数评估需要所有线程运行。” (2认同)