如何在方法返回之前等待我的方法完成任务。
public async void barcodescanner()
{
var scanner = new ZXing.Mobile.MobileBarcodeScanner();
barcode = await scanner.Scan();
}
scaner.Scan()
的定义:
public Task<Result> Scan();
答案 0 :(得分:2)
你不能等待async void
方法的结果 - 它明确地&#34;激发并忘记&#34;行为。
如果您想等待完成 - 请返回Task
和.Wait
public async Task barcodescanner() {...}
barcodescanner().Wait();
注意:
void
和Task
回报之间的差异。答案 1 :(得分:0)
您可以随时执行此操作:
public void barcodescanner()
{
var scanner = new ZXing.Mobile.MobileBarcodeScanner();
barcode = scanner.Scan().Result;
}