在c#中执行后台任务的最佳实践

时间:2017-03-22 08:40:50

标签: c# background-process

我想知道在c#中执行后台任务的最佳做法是什么?

例如,在我的应用程序中,我有一个save()函数,当我执行此函数时,我想在后台运行另一个任务 - 在我的情况下,使用谷歌地图地理编码器转换lat中的地址/经度。

1 个答案:

答案 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
}