コード例 #1
0
 /// <summary>
 /// Updates all of the components of the working set asynchronously. This launches three tasks. Each task depends on its predecessor:
 /// <list type="number">
 /// <item><description>Update the <see cref="SrcMLProject.SourceArchive"/> and the <see cref="SrcMLProject.NonSourceArchive"/> objects based on <see cref="SrcMLProject.Monitor"/></description></item>
 /// <item><description>Updates the <see cref="Data"/> based on the <see cref="SrcMLProject.SourceArchive"/></description></item>
 /// <item><description>Updates the <see cref="Data"/> based on the <see cref="SrcMLProject.SourceArchive"/></description></item>
 /// </list>
 /// </summary>
 /// <returns>The 3rd task</returns>
 public override Task UpdateAsync()
 {
     return(Task.Factory.StartNew(() => base.UpdateAsync().Wait())
            .ContinueWith((t) => SourceArchiveMonitor.UpdateArchivesAsync().Wait(), TaskContinuationOptions.OnlyOnRanToCompletion)
            .ContinueWith((t) => WorkingSet.InitializeAsync().Wait(), TaskContinuationOptions.OnlyOnRanToCompletion));
 }