なんらかの理由で理解できませんawaitが、次のコードの私のステートメントを超えるコードに到達することはありません。なんで?
public class FileSystemUpdateSource : IUpdateSource
{
    private ObservableCollection<UpdatePackage> _packages = new ObservableCollection<UpdatePackage>();
    private readonly DirectoryInfo _importDirectory = null;
    public FileSystemUpdateSource(DirectoryInfo a_importDirectory)
    {
        #region Argument Validation
        if (a_importDirectory == null)
            throw new ArgumentNullException("a_importDirectory");
        #endregion
        _importDirectory = a_importDirectory;
        Refresh();
    }
    public ObservableCollection<UpdatePackage> Packages
    {
        get { return _packages; }
    }
    public async void RefreshAsync()
    {
        var task = new Task<IEnumerable<UpdatePackage>>(CreatePackages);
        var packages = await task;
        // *** Code not reached ***
        Packages.Clear();
        Packages.AddRange(packages);
    }
    public void Refresh()
    {
        var packages = CreatePackages();
        Packages.Clear();
        Packages.AddRange(packages);
    }
    private IEnumerable<UpdatePackage> CreatePackages()
    {
        var packageFiles = from packageFile in _importDirectory.EnumerateFiles().AsParallel()
                           where FileIsZip(packageFile)
                           select new UpdatePackage(packageFile);
        return packageFiles;
    }
    private bool FileIsZip(FileInfo a_file)
    {
        using (var fin = a_file.OpenRead())
        {
            byte[] firstBytes = new byte[5];
            fin.Read(firstBytes, 0, 5);
            if (firstBytes[0] == 80 && firstBytes[1] == 75 && firstBytes[2] == 3 && firstBytes[3] == 4 && firstBytes[4] == 20)
                return true;
            else
                return false;
        }
    }
}
    protected override void OnStartup(StartupEventArgs e)
    {
        base.OnStartup(e);
        var importRoot = ApplicationSettings.Current.GetValue("ImportRoot") as System.IO.DirectoryInfo;
        IUpdateSource updateSource = new FileSystemUpdateSource(importRoot);
        updateSource.RefreshAsync();
        // *** Code IS reached here. ***
    }
編集
そのようなtask.Start()直前に私のコードに追加してくれてありがとう(Reed Copseyの答えに感謝します):await
    /// <summary>
    /// Refresh the list of available update packages (asynchronously).
    /// </summary>
    public async Task RefreshAsync()
    {
        var task = new Task<IEnumerable<UpdatePackage>>(CreatePackages);
        task.Start();
        var packages = await task;
        Packages.Clear();
        Packages.AddRange(packages);
    }