我有这个功能
static async Task<string> ChatGPT(string token, string model, string message)
{
ChatGPTClient chatGPTClient = new ChatGPTClient();
string result = await chatGPTClient.GetChatGPTResponse(token, model, message);
return result;
}
result 是函数内部的一个字符串,在调用时传递
当我调试时,我可以读取
result = "Hello! How can I assist you today?"
的值
从此事件中调用它
private void btnCall_Click(object sender, EventArgs e)
{
string token = txtToken.Text;
string model = cmbModel.Text;
string message = txtPrompt.Text;
txtDisplay.text = ChatGPT(token, model, message).ToString();
}
但是 txtDisplay 的值是
System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[System.String,APIApp.frmChatGPT+<ChatGPT>d__1]
我做错了什么以及如何解决它?
ChatGPT
方法的结果类型是Task<string>
。如果您想分配任务的字符串结果,那么您必须await
任务。
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);
}