It is not necessary to post your question both on SO and here on Devnet as Devnet is pulling the questions from SO.
Answer from SO:
The recommended way to update contact in Kentico is to use ContactInfoProvider class like this:
var contact = ContactInfoProvider.GetContactInfo(OnlineMarketingContext.CurrentContactID);
if (contact != null)
{
// update contact
contact.ContactFirstName = "Arnold";
contact.SetValue("CustomField", "Value");
// save contact
contact.Update();
}
This code updates the contact directly in database and there is no delay in updating the contact.