when should i use a coroutine in c# code example

Example 1: how to start a coroutine in c#

void Start()
    {
        StartCoroutine(Test());
    }

    IEnumerator Test()
    {
        yield return new WaitForSeconds[2];
    }

Example 2: c# coroutines

using UnityEngine;
using System.Collections;public class ExampleClass : MonoBehaviour
{
    IEnumerator WaitAndPrint()
    {
        // suspend execution for 5 seconds
        yield return new WaitForSeconds(5);
        print("WaitAndPrint " + Time.time);
    }    IEnumerator Start()
    {
        print("Starting " + Time.time);        // Start function WaitAndPrint as a coroutine
        yield return StartCoroutine("WaitAndPrint");
        print("Done " + Time.time);
    }
}