C#多線程實現(xiàn)異步接口
異步接口的聲明
我們已經(jīng)了解到,如果一個方法是異步的,那么這個方法的返回值類型是Task<T>,那么接口中該如何規(guī)定異步方法呢?
一樣的,如果接口中的方法是異步的,那么規(guī)定方法的返回值類型是Task<T>即可,看下面的代碼:
interface ITest
{
/// <summary>
/// 方法的返回類型是Task<T>
/// </summary>
/// <returns></returns>
Task<string> GetAsync();
}注意:方法的前面不能添加async標(biāo)注。因為從語法上來講,接口只能定義行為,不能定義實現(xiàn),如果標(biāo)注為async,就屬于實現(xiàn)了。我們在方法前面標(biāo)注async,看看是什么效果:

我們看到,方法直接就報錯了。而接口的實現(xiàn)類中的方法可以標(biāo)注為async,也可以不標(biāo)注為async,看下面的代碼:
/// <summary>
/// 定義接口
/// </summary>
interface ITest
{
/// <summary>
/// 方法的返回類型是Task<T>
/// </summary>
/// <returns></returns>
///不能標(biāo)注為async
Task<string> GetAsync();
}
public class Test : ITest
{
/// <summary>
/// 方法不標(biāo)注為async 返回一個Task<string>類型
/// </summary>
/// <returns></returns>
//public Task<string> GetAsync()
//{
// return Task.Run<string>(() =>
// {
// return "2";
// });
//}
/// <summary>
/// 方法標(biāo)注為async 直接返回一個string類型
/// </summary>
/// <returns></returns>
public async Task<string> GetAsync()
{
return "3";
}
}到此這篇關(guān)于C#多線程實現(xiàn)異步接口的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
c# 兩個數(shù)組比較,將重復(fù)部分去掉,返回不重復(fù)部分的實現(xiàn)
下面小編就為大家?guī)硪黄猚# 兩個數(shù)組比較,將重復(fù)部分去掉,返回不重復(fù)部分的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-12-12
C#?使用?Filestream?修改大文件指定位置數(shù)據(jù)
這篇文章主要介紹了C#?使用?Filestream修改大文件指定位置數(shù)據(jù),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09
解析美國東部時間與北京時間相互轉(zhuǎn)換的實現(xiàn)代碼
本篇文章是對美國東部時間與北京時間相互轉(zhuǎn)換的實現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
利用C#實現(xiàn)獲取與監(jiān)控電腦系統(tǒng)信息
在C#中,獲取與監(jiān)控電腦系統(tǒng)信息通??梢酝ㄟ^多種方式實現(xiàn),這篇文章主要為大家整理了幾種常見的方法及其示例代碼,希望對大家有所幫助2024-11-11

