第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

了解 Task 與 Task<T> 作為返回類型

了解 Task 與 Task<T> 作為返回類型

C#
九州編程 2023-08-20 14:40:06
如果這個問題已經(jīng)在某個地方得到解決,我深表歉意,但有關該主題的資源數(shù)量相當龐大。我編寫了以下等待異步調(diào)用的方法public async Task GetAllObjectsNames(string bucketName){    if (string.IsNullOrEmpty(bucketName))    {        throw new ArgumentNullException(nameof(bucketName), "bucket name can't be null or empty string");    }    var request = new ListObjectsRequest    {        BucketName = bucketName    };    await  s_client.ListObjectsAsync(request);}致力于解決返回 aTask和返回 a之間的區(qū)別Task<T>public async Task<IEnumerable<string>> GetAllObjectsNames(string bucketName){    if (string.IsNullOrEmpty(bucketName))    {        throw new ArgumentNullException(nameof(bucketName), "bucket name can't be null or empty string");    }    var request = new ListObjectsRequest    {        BucketName = bucketName    };    var response = await s_client.ListObjectsAsync(request);    return response.S3Objects.Select(o => o.Key);}有人可以插話嗎?
查看完整描述

2 回答

?
慕無忌1623718

TA貢獻1744條經(jīng)驗 獲得超4個贊

Task表示可能正在進行、或者可能已取消、發(fā)生故障或已完成的操作。CompletedTask不包含任何類型的結(jié)果,它僅表示操作已完成的事實。


Task<T>也表示可能正在進行、或可能已取消、發(fā)生故障或可能已完成的操作。但是,已完成的Task<T>將包含該操作的結(jié)果,然后您可以讀取該結(jié)果。


你可以寫:


public async Task<IEnumerable<string>> GetAllObjectsNames(string bucketName)

// ...

var objects = await GetAllObjectsNames("Foo");

await GetAllObjectsNames("Foo"); // Throws away the result of the Task

但是你只能寫:


public async Task GetAllObjectsNames(string bucketName)

// ...

await GetAllObjectsNames("Foo");

Task此版本的返回值不能GetAllObjectsNames包含結(jié)果,因此您只能知道該操作何時完成 - 您無法從中獲取結(jié)果。


您可以用作方法Task的返回值UploadObject- 您關心上傳操作何時完成,但沒有結(jié)果可供您讀取。您可能會使用Task<T>for GetAllObjectsNames,因為該操作的目的是獲取一些值供您使用。


void從概念上講,它與返回(不返回結(jié)果)的方法或返回其他任何內(nèi)容的方法之間的區(qū)別相同。Action或者和之間的區(qū)別Func<T>。


查看完整回答
反對 回復 2023-08-20
?
慕桂英546537

TA貢獻1848條經(jīng)驗 獲得超10個贊

System.Threading.Tasks.Task<TResult>表示可以返回值(類型為 TResult)的異步操作。

(如果有幫助,這類似于System.Func<…, TResult>,它基本上是一個返回值的操作)。

System.Threading.Tasks.Task表示異步操作(不返回值)。

(同樣,這類似于System.Action<…>。)


查看完整回答
反對 回復 2023-08-20
  • 2 回答
  • 0 關注
  • 181 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號