Asynchrone Programmierung in .NET 4.5 mit async und await

Seite 6: Listing 2

Inhaltsverzeichnis
static void Main(string[] args)
{
Console.WriteLine("Starte");
DateiSuchDemo("Mountain Bike", @"w:\dokumente");
Console.WriteLine("Warte...");
while (true) { Console.Write("."); System.Threading.Thread.Sleep(100); }
}


/// <summary>
/// Suche ausführen mit Windows Search auf Basis der WinRT-Bibliothek
/// Windows.Storage.Search
/// Auch eine Referenz auf Windows.winmd
/// </summary>
private static async void DateiSuchDemo(string Begriff, string Ordner)
{
// Suche definieren
var docs = Windows.Storage.KnownFolders.DocumentsLibrary;
var queryOptions = new Windows.Storage.Search.QueryOptions();
queryOptions.FolderDepth = Windows.Storage.Search.FolderDepth.Deep;
queryOptions.IndexerOption =
Windows.Storage.Search.IndexerOption.UseIndexerWhenAvailable;
queryOptions.UserSearchFilter = "'" + Begriff + @"' folder:"
+ Ordner; // Advanced Query Syntax (AQS)
var query = docs.CreateFileQueryWithOptions(queryOptions);

// Suche starten
Console.WriteLine("Windows Suche im Ordner " + Ordner + "
nach Dateien mit Begriff: " + Begriff);
Console.WriteLine("Windows Suche beginnt...");

IReadOnlyList<Windows.Storage.StorageFile> ergebnis =
await query.GetFilesAsync();

// Ergebnisse zeigen
Console.WriteLine("\nSuche abgeschlossen. Gefundene Dateien: " +
ergebnis.Count);
Console.WriteLine("-------------------------------------------------");
foreach (Windows.Storage.StorageFile f in ergebnis)
{
Console.WriteLine(f.Name + " (" + f.FileType + "): " + f.Path);
}
} (ane)