如何在方法返回之前等待我的方法完成任務。等到任務返回
public async void barcodescanner()
{
var scanner = new ZXing.Mobile.MobileBarcodeScanner();
barcode = await scanner.Scan();
}
的scaner.Scan()
定義:
public Task<Result> Scan();
如何在方法返回之前等待我的方法完成任務。等到任務返回
public async void barcodescanner()
{
var scanner = new ZXing.Mobile.MobileBarcodeScanner();
barcode = await scanner.Scan();
}
的scaner.Scan()
定義:
public Task<Result> Scan();
你不能等待async void
方法的結果 - 這是明確的 「發射後不管」 的行爲。
如果你想等待完成 - 返回Task
和.Wait
它
public async Task barcodescanner() {...}
barcodescanner().Wait();
注:
void
和Task
返回覆蓋What's the difference between returning void and returning a Task?答案之間的差異。調用'Wait()'會使UI失效。 –
@PauloMorgado不確定你的評論是關於什麼的。如果你問的問題 - 鏈接解釋是在答案... –
你總是可以做到這一點:
public void barcodescanner()
{
var scanner = new ZXing.Mobile.MobileBarcodeScanner();
barcode = scanner.Scan().Result;
}
感謝您的編輯,但代碼片段的插入而不能正常工作。它看起來已經改變了。我不認爲我需要一個負面的聲譽,因爲我沒有錯 – LibinJoseph
你在哪個平臺上運行這個平臺? – Enigmativity
@Enigmativity:Xamarin.Android – LibinJoseph