![](/img/trans.png)
[英]TargetInvocationException: Exception has been thrown by the target of an invocation. on Data Bind
[英]How can I fix “exception has been thrown by the target of an invocation” while accessing data?
在選擇更改事件中,我正在從我的一個表中訪問數據。 但是將引發“異常已由調用的目標引發”。
var query = conn.Table<auto_fares>().Where(x => x.city == cbCity.SelectedItem);
var result = await query.ToListAsync();
foreach (var item in result)
{
txtDistance.Text = item.min_km.ToString();
lblDayFare.Text = item.min_fare.ToString();
lblNightFare.Text = item.night_charges.ToString();
}
添加Dispose語句后,出現以下錯誤:“ await運算符只能在異步lamhda表達式內使用。請考慮使用'async'修飾符制作此lamhda表達式。
我該如何解決?
嘗試像這樣重新編寫代碼:
var selectedCity = cbCity.SelectedItem;
var query = conn.Table<auto_fares>().Where(x => x.city == selectedCity);
var result = await query.ToListAsync();
foreach (var item in result)
{
txtDistance.Text = item.min_km.ToString();
lblDayFare.Text = item.min_fare.ToString();
lblNightFare.Text = item.night_charges.ToString();
}
您正在嘗試從非UI線程(等待query.ToListAsync())訪問UI組件(cbCity.SelectedItem)。
此foreach是異步執行的,您正在從其他線程訪問UI。 將您的foreach包裝在Dispatcher.Invoke()中。
像這樣:
Dispatcher.CurrentDispatcher.Invoke( new Action( () => {... your foreach...} );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.