c 同步呼叫非同步 async 方法 記錄用

2022-02-28 09:26:32 字數 438 閱讀 1923

使用restsharp中的非同步方法executetaskasync編寫寫了乙個非同步方法,功能很簡單:非同步呼叫api,返回結果,假設為getaccesstoken,方法簽名假設如下:

public

async taskgetaccesstokenasync()

使用await關鍵字進行呼叫時一切正常使用,因為有同步呼叫些非同步方法的需求,使用程式碼如下:

obj.getaccesstoken().getawaiter().getresult();

這時候出現了無限等待情況,試了很久,發現下面程式碼可行解決問題:

task.run(() => obj.getaccesstoken()).result

具體原因未找到,目前這些可以正常執行。

記錄下此問題,如有道友知道原因,請指點,謝謝!

Async非同步呼叫

1.專案啟動類上加 enableasync enableasync 允許非同步 public static void main string args 2.無返回值情況 在需要執行的非同步方法上加 async component public class asynctask catch interr...

C 非同步同步呼叫

本文將主要通過 同步呼叫 非同步呼叫 非同步 三個示例來講解在用委託執行同乙個 加法類 的時候的的區別和利弊。首先,通過 定義乙個委託和下面三個示例將要呼叫的方法 新增的命名空間 using system.threading using system.runtime.remoting.messagi...

Springboot之非同步呼叫(Async)

非同步呼叫通常是指非同步呼叫service。1.啟動類開啟非同步呼叫 enableasync 2.controller層 無特殊處理 public string asyn 3.service層中需要非同步呼叫的方法加 async註解 async public void asyn system.out...