等到任务返回
本文关键字:返回 任务 | 更新日期: 2023-09-27 18:33:04
在方法返回之前,如何等待我的方法完成任务。
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
返回之间的区别 返回无效和返回任务有什么区别?答案。
你总是可以这样做:
public void barcodescanner()
{
var scanner = new ZXing.Mobile.MobileBarcodeScanner();
barcode = scanner.Scan().Result;
}