using (System.Threading.CancellationTokenSource cancellationTokenSource = new System.Threading.CancellationTokenSource())
{
    RetZselectAsync r = null;
    MercatorUi._BaseClasses.ExclusiveBackgroundWorkerAsync ebwa = new MercatorUi._BaseClasses.ExclusiveBackgroundWorkerAsync(
                async () => r = await Api.ZselectAsync(Globals.RepData, reqSql, cancellationTokenSource: cancellationTokenSource),
                sigForm,
                cancellationTokenSource: cancellationTokenSource);
    if (cancellationTokenSource.IsCancellationRequested)
    {
        // de gebruiker heeft op Annuleren geklikt
        return;
    }
    else if (r == null)
    {
        // er is een uitzondering opgetreden in de code van deAsync actie
        Dialogs.Stop(ebwa.ExceptionDuringDoWork?.Message ?? "Unknown error!");
        return;
    }
    else if (r.Result == null)
    {
        // er is een SQL-fout opgetreden
        r.Zstoperror();
        return;
    }
    else
    {
        // alles is goed!
        DataSet dataSet = r.Result;
    }
}