C# 如何使我的方法返回一个字符串值,但仍然是一个异步方法?
我有以下返回此错误的方法:C# 如何使我的方法返回一个字符串值,但仍然是一个异步方法?,c#,asp.net-core,C#,Asp.net Core,我有以下返回此错误的方法: Error CS1983 The return type of an async method must be void, Task, Task<T>, a task-like type, IAsyncEnumerable<T>, or IAsyncEnumerator<T> 方法如下: private async String SaveAIguess(IFormFile file) { var picture =
Error CS1983 The return type of an async method must be void, Task, Task<T>, a task-like type, IAsyncEnumerable<T>, or IAsyncEnumerator<T>
方法如下:
private async String SaveAIguess(IFormFile file)
{
var picture = GetFile(file.FileName);
await StorageService.Save(picture, file.OpenReadStream());
var resourceUrl = Path.GetFullPath(file.FileName);
return resourceUrl;
}
有没有一种方法可以使它异步并且仍然能够返回resourceUrl
谢谢 使其返回任务:
wait
基本上“打开”了任务
,并为您提供字符串
是:
private async Task<String> SaveAIguess(IFormFile file)
private async Task SaveAIguess(格式化文件)
异步方法必须返回任务
、任务
或无效
。如果您将返回类型更改为Task
,它应该可以按需要工作。当然,任何调用异步方法的方法也必须是异步的,或者必须像调用SaveAIguess(dat).Result那样调用它,使其同步
所以您的最终代码将如下所示
private async Task SaveAIguess(格式化文件)
{
var picture=GetFile(file.FileName);
等待StorageService.Save(picture,file.OpenReadStream());
var resourceUrl=Path.GetFullPath(file.FileName);
返回resourceUrl;
}
在另一个异步方法中可以这样调用:
var str=wait SaveAIguess(dat);
或者用同步的方法
var str=SaveAIGuess(dat)。结果
private async Task<string> SaveAIguess(IFormFile file)
{
var picture = GetFile(file.FileName);
await StorageService.Save(picture, file.OpenReadStream());
var resourceUrl = Path.GetFullPath(file.FileName);
return resourceUrl;
}
var val = await SaveAIguess(file);
private async Task<String> SaveAIguess(IFormFile file)