public override IWriteResult WriteBodyArea(IRenderContext context) { var html = context.Html; // Save this location in the output buffer var begining = html.CreateInsertionPoint(); // Write a paragraph of text html.WriteElementLine("p", "This is a semi custom page", "class", "normal"); // Use the saved buffer location to write the heading before the paragraph // and do this in a separate thread var task = Task.Factory.StartNew(() => { // Simulate a call to a service or database here Thread.Sleep(10); begining.WriteElementLine("h1", "Semi Custom", "class", "page-heading"); }); // Write a second paragraph of text html.WriteElementLine("p", "My second paragraph of text", "class", "normal"); return(WriteResult.WaitFor(task)); }