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

Best practice to execute background task in c#

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

例如,在我的应用程序中我有一个 save() 函数,当我执行这个函数时,我想 运行 在后台执行另一个任务 - 在我的例子中,使用 google 映射地理编码器以在 lat/lng.

中转换地址

我建议您在保存之前收集and/or计算您需要保存的所有信息。

考虑一下:如果从地址到 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
}