我想知道在c#中执行后台任务的最佳做法是什么?
例如,在我的应用程序中,我有一个save()函数,当我执行此函数时,我想在后台运行另一个任务 - 在我的情况下,使用谷歌地图地理编码器转换lat中的地址/经度。
答案 0 :(得分:2)
我建议你收集和/或计算保存之前保存所需的所有信息。
考虑一下:如果从地址到lat / lng的转换失败。 Save()
方法是否应该实际保存对象?
我建议您将该逻辑放在除Save()
方法之外的其他位置。
你可以这样做:
// example object
private ObjectToSave PrepareObjectForPersistance()
{
return new ObjectToSave { LatLng = await ConvertAddressToLatLng(address) };
}
然后将要保存的对象传递给Save()方法:
public void Save(ObjectToSave obejctToSave)
{
// Do whatever has to be done to save your object
}