The actual answer is too long to post here.
Short answer
No, you should not call async methods from sync methods. The method tree should be asynchronous bottom to top.
For example: Using ASP.NET MVC async methods would be called from async Action methods, see: Using Asynchronous Methods in ASP.NET MVC 4.
public async Task<ActionResult> GizmosAsync()
{
ViewBag.SyncOrAsync = "Asynchronous";
var gizmoService = new GizmoService();
return View("Gizmos", await gizmoService.GetGizmosAsync());
}
Using WPF applications, you should have async void event methods, that call your asynchronous methods.
private async void button1_Click(object sender, RoutedEventArgs e)
{
textBlock1.Text = "Click Started";
await DoWork();
textBlock2.Text = "Click Finished";
}
Either way, the question is too broad.
- What is your "to be implemented" method?
- why do you want it to be async?
- What environment are you using?
In general async is used for I/O operations(databases, network, file read/write) or parallelism.