You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用异步Task<string>方法返回状态机而非字符串的问题排查与修复

问题原因

你调用异步方法时未等待其执行完成,直接对返回的Task<string>对象调用ToString(),输出的是Task对象的类型信息,而非异步方法实际返回的字符串结果。

修复方案

将按钮点击事件修改为异步方法,并使用await等待ChatGPT方法执行完成:

private async void btnCall_Click(object sender, EventArgs e)
{
    string token = txtToken.Text;
    string model = cmbModel.Text;
    string message = txtPrompt.Text;

    txtDisplay.Text = await ChatGPT(token, model, message);
}
补充说明
  • WinForms的事件处理方法允许使用async void(这是少数适合用async void的场景),这样就能在方法内部使用await关键字。
  • 直接调用ChatGPT()而不加await,得到的是未完成的Task<string>实例,ToString()会返回该Task对象的类型标识,也就是你看到的那段长字符串。
  • 加上await后,程序会等待异步方法执行完毕,拿到实际的字符串返回值,再赋值给txtDisplay.Text。

内容的提问来源于stack exchange,提问作者asmgx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 20:55:06