AWAIT

Wait for an asynchronous task to complete

 

 

 

NSupported in Synergy .NET
AWAIT task
or
AWAIT foreach

task

An expression that returns a task of the type System.Threading.Tasks.Task or System.Threading.Tasks.Task<>.

foreach

A FOREACH statement that iterates over an ASYNC collection.

The AWAIT statement can only be used in a method or lambda marked as ASYNC. Within that restriction, it can be used anywhere an expression can be used. If AWAIT is not present, the method or lambda is not asynchronous. Asynchronous processing is only available on .NET. See Asynchronous processing (.NET) for more information.

The following program gets weather alerts for different states based on the day of the week.

public async method clickit, void
proc
    data stockPrice, double 
    stockPrice = 123.45;

     data wc, @WebClient
      wc = new WebClient()

    data dt, DateTime
    dt = DateTime.Parse("03-18-2012")

    case (dt.DayOfWeek) of
    begincase
      DayOfWeek.Monday:
      begin
        WriteLinePageTitle(await wc.DownloadStringTaskAsync(new
  &         Uri("http://www.weather.gov/alerts-beta/wa.php?x=1")));
        stockPrice += 1.25;
      end
      DayOfWeek.Tuesday:
      begin
        WriteLinePageTitle(await wc.DownloadStringTaskAsync(new
  &         Uri("http://www.weather.gov/alerts-beta/or.php?x=1")));
        stockPrice *= 1.04;
      end
      DayOfWeek.Wednesday:
      begin
        WriteLinePageTitle(await wc.DownloadStringTaskAsync(new
  &         Uri("http://www.weather.gov/alerts-beta/ca.php?x=1")));
        stockPrice -= 0.58;
      end
      DayOfWeek.Thursday:
      begin
        WriteLinePageTitle(await wc.DownloadStringTaskAsync(new
  &         Uri("http://www.weather.gov/alerts-beta/nv.php?x=1")));
        stockPrice *= 0.99;
      end
      DayOfWeek.Friday:
      begin
        WriteLinePageTitle(await wc.DownloadStringTaskAsync(new
  &         Uri("http://www.weather.gov/alerts-beta/az.php?x=1")));
        stockPrice += 0.79;
      end
      DayOfWeek.Saturday:
      begin
        WriteLinePageTitle(await wc.DownloadStringTaskAsync(new
  &         Uri("http://www.weather.gov/alerts-beta/ut.php?x=1")));
        stockPrice += 1.8;
      end
      DayOfWeek.Sunday:
      begin
        WriteLinePageTitle(await wc.DownloadStringTaskAsync(new
  &         Uri("http://www.weather.gov/alerts-beta/nm.php?x=1")));
        stockPrice /= 1.2;
      end
    endcase
end

See FOREACH for an example of the second syntax.