1. 程式人生 > >非同步方法不能使用ref和out的解決方法

非同步方法不能使用ref和out的解決方法

應用場景==》後端現在都是用非同步方法,那麼分頁是必不可少的,於是就有了這個問題

這個是官方說明:https://social.msdn.microsoft.com/Forums/en-US/d2f48a52-e35a-4948-844d-828a1a6deb74/why-async-methods-cannot-have-ref-or-out-parameters

這個基本上是無解,我只想到了折中的處理,如果有夥計能完美解決記得通知我一下,小弟感激不盡~

從需求入手==》目的是什麼?為了得到資料+總資料量

那麼可以封裝一個類,這個類裡面放這些東西:

參考:

以下是其他解決方案,你也可以試試:

可以巢狀方法
public Task<string> FooAsync(out int x, ref int y)
{
    // Assign a value to x here, maybe change y
    return FooAsyncImpl(x, y);
}

private async Task<string> FooAsyncImpl(int x, int y) // Not ref or out!
{
}

相關推薦

非同步方法不能使用refout解決方法

應用場景==》後端現在都是用非同步方法,那麼分頁是必不可少的,於是就有了這個問題 這個是官方說明:https://social.msdn.microsoft.com/Forums/en-US/d2f48a52-e35a-4948-844d-828a1a6deb74/why-async-methods

C#方法中參數refout的解析

執行方法 類型 容易 com line 錯誤 pan 系統 pro 一、C#方法中參數類型 有4種參數類型,有時候很難記住它們的不同特征,下圖對它們做一個總結,使之更容易比較和對照。 二、C#方法中的參數 1、值參數 使用值參數,通過復制實參的值到形參的方式把數

方法引數修飾符refout的區別

out和ref 1)out和ref傳變數的地址(引用地址),形參改變,實參也改變。因為他們都是引用一個地址的; 2)帶ref和out修飾的引數只能傳遞變數不能傳遞常量. 3)out和ref的區別   out修飾的引數必須在方法內修改,而ref可以修改也可以不修改;   ou

git 使用報錯: fatal: Couldn't find remote ref master的解決方法

fatal: Couldn't find remote ref master 翻譯過來就是:致命的:無法找到遠端參考主,也就是報錯的意思。錯誤的提示內容意思是找不到需要連線的物件。 解決方法有以下幾種: 0.如果是新建的倉庫( repositories )的話在pull程式碼的時候,出

過擬問題解決方法

過擬合問題往往源自過多的特徵。 解決方法 1)特徵率選,減少特徵數量(減少特徵會失去一些資訊,即使特徵選的很好) 可用人工選擇要保留的特徵; 模型選擇演算法; 2)正則化(特徵較多時比較有效)--L1範數和L2範數 保留所有特徵,但減少θ的大小 正則化方法

CentOS 7安裝圖形介面步驟問題解決方法

  一、CentOS 7圖形安裝步驟:  首先需要進行必要的圖形元件安裝--命令為:     yum groupinstall "X Window System "     yum groupinstall "GNOME Desktop "

CentOS 7安裝圖形界面步驟問題解決方法

-- src sysconf rip bubuko ifconfig 技術 ger pts 一、CentOS 7圖形安裝步驟:  首先需要進行必要的圖形組件安裝--命令為: yum groupinstall "X Window System "

javaweb中中文亂碼解決方法總結之responserequest解決方法

一中文論碼問題出現的由來         之所以會產生亂碼問題,不僅僅是中文亂碼,其原因就在於:編碼和解碼採用了不同的碼錶。而之所以會有編碼和解碼這一回事,也是因為,無論資料是在傳輸還是儲存等等過程中

關於ubuntu使用中發現的一些問題部分解決方法

最近在ubuntu中學習的時間增加了特別多,而遇到的問題也是一連串地出現,有的以前解決過,忘記了,更多的則是新問題,記錄下來並提供解決方案,以後遇到就能回來查一查。 1.安裝lynx 這個是課程上面

Android 過渡繪製檢測部分解決方法

過渡繪製 1.什麼是過渡繪製 過度繪製(Overdraw)是螢幕上的某個畫素在同一幀的時間內被繪製了多次。在多層次重疊的 UI 結構裡面,如果不可見的 UI 也在做繪製的操作,會導致某些畫素區域被繪製了多次,同時也會浪費大量的 CPU 以及 GPU

【演算法之陣列(一)】求子陣列最大解決方法詳解

題目: 輸入一個整形陣列,數組裡有正數也有負數。 陣列中連續的一個或多個整陣列成一個子陣列,每個子陣列都有一個和。 求所有子陣列的和的最大值。 例如輸入的陣列為1, -2, 3, 10, -4, 7, 2, -5,和最大的子陣列為3, 10, -4, 7, 2, 因此

ES6---JS非同步程式設計的幾種解決方法及其優缺點

前言 因專案需要從LiveScript轉為ES6, 所以最近看了阮一峰的ES6教程,主要感興趣的是ES6對JS的非同步程式設計新的解決方案,ES6增加了promise和Generator等解決方法。現在我們來大致理清一下到ES6為止的JS非同步解決的思路

Java之idea建立gradle專案預設沒有srcresources解決方法

在專案根目錄下的build.gradle中新增建立目錄的任務,如下: task "create-dirs" << { sourceSets*.java.srcDirs*.each{ it.mkdirs() }

Navicat Premium連線Oracle遇到的一些問題解決方法

1、ORA-28547: 這是因為oci.dll版本不對。Navicat本地的OCI版本與Oracle伺服器伺服器不符造成的。 或者 開啟Navicat premium客戶端:Tool->Options 你會發現OCI library的路徑是

chorme啟動頁面被2345網站篡改鎖定劫持解決方法

今天發現一個很令人煩的問題,新下載的谷歌瀏覽器首頁每次開啟都是載入的2345網站的首頁,在網上查了一下出現這種問題的現象還挺多的,在這裡提供一些解決方法: 方法一:點選谷歌瀏覽器右上方的導航(豎直方向的半省略號),點選【設定】---》啟動時---》【開啟特定網頁或一組網

win7共享xp印表機檔案解決方法(圖解)

分析問題: 1.第一感覺:win7系統共享沒有設定正確(安裝網上步驟設定加入工作組,開啟網路共享和檔案和印表機共享,開啟了後臺服務,以及防火牆),但是還是同樣問題 2.忘記考慮一點:是不是xp系統的問題,win7對區域網共享需要新的服務或者協議支援,xp沒有安裝,最後的確是

觸發器中ORA-04091 變異表錯誤原因一般解決方法

 在公司寫了一個觸發器,遇到了ORA-04091 錯誤,開始以為是觸發器邏輯寫錯誤了,後來反覆修改和檢查後感覺沒有錯誤,可是還報這個錯誤. 後經過查資料知道原來在觸發器中對觸發器要更新的表是不能在本表上做查詢的,最終我在觸發器中繞過查詢本表就可以了.現在記錄下原因和一般的解

Weblogic Server Console密碼修改遺忘解決方法

修改Console密碼: 開啟weblogic控制檯   1、Domain Configurations ----> Your Application's Security Settings   -------->  Realms   2、--> >

refout

引用 ram 引用類型 brush temp string emp 之前 pro   ref關鍵字:     是用來修飾形參的,可以將值類型當做引用類型來使用     ref修飾的形參,在方法內部修改的時候,會影響實參的值     ref修飾的形參,在傳參的時候,實參的值可

C# refout總結

技術分享 pos 操作 arm 代碼 cnblogs for set href C# 中ref 與 out 總結   參數的傳遞一般分為兩種:一種是“值傳遞”即:傳遞實參的拷貝,既然是拷貝那麽在函數中對這個形參所作的任何動作都不會反映到原來的實參中。另外一種是“引用