Wie bekomme ich die Syntax "Warte" mit der richtigen Syntax?C#

Ein Treffpunkt für C#-Programmierer
Guest
 Wie bekomme ich die Syntax "Warte" mit der richtigen Syntax?

Post by Guest »

Ich habe den folgenden synchronen Code, der gut funktioniert: < /p>

Code: Select all

    private void GenerateExportOutput()
{
using StreamWriter writer = new(Coordinator.OutputDirectory + @"\export.txt");

if (this.WikiPagesToExport.IsEmpty)
{
return;
}

var wanted = new SortedDictionary(this.WikiPagesToExport, StringComparer.Ordinal);
foreach (var title in wanted.Keys)
{
writer.WriteLine(title);
}
}
< /code>
Ich möchte es so ändern, dass es asynchron ist. Also: < /p>
    private async Task GenerateExportOutputAsync()
{
using StreamWriter writer = new(Coordinator.OutputDirectory + @"\export.txt");

if (this.WikiPagesToExport.IsEmpty)
{
return;
}

var wanted = new SortedDictionary(this.WikiPagesToExport, StringComparer.Ordinal);
foreach (var title in wanted.Keys)
{
await writer.WriteLineAsync(title).ConfigureAwait(false);
}

await writer.FlushAsync().ConfigureAwait(false);
}
< /code>
Was kompiliert. Aber einer der Analysatoren, die ich benutze (meziantou.Analyzer), schlägt jetzt vor, dass ich "lieber" mit '"mit'" aufwache. Ich habe noch nie erwartet verwendet (obwohl ich in der Vergangenheit mehrmals versucht habe und immer auf die gleichen Probleme gestoßen bin, auf die ich jetzt stoße). Aber ich würde es gerne verwenden, also: < /p>
        await using StreamWriter writer = new StreamWriter(OutputDirectory + @"\export.txt").ConfigureAwait(false);
Jetzt wird es nicht mehr kompiliert: CS0029 kann den Typ 'System.Runtime.comPilerServices.ConfiguredAsyncDisposable' auf 'System.io.ioTreamwriter' nicht implizit konvertieren. Ok, gut, also ändere ich es, um Var stattdessen zu verwenden:

Code: Select all

        await using var writer = new StreamWriter(OutputDirectory + @"\export.txt").ConfigureAwait(false);
, der es über den CS0029 hinausbringt, aber jetzt ist der spätere Code nicht kompiliert: Fehler CS1061 'configuredAsyncDisposable' enthält keine Definition für 'Writelineasync' (und ein ähnliches Eine für Flushasync .

Code: Select all

            await ((StreamWriter)writer).WriteLineAsync(title).ConfigureAwait(false);
NOPE: Fehler CS0030 kann den Typ 'system.runtime.comPilerServices.ConfiguredaSyncDisposable' auf 'System.io.Streamwriter'
nicht konvertieren. Ich habe ein Haufen gegoogelt und ein Haufen jetzt und mehrmals in der Vergangenheit gelesen, aber ich konnte einfach nicht herausfinden, wie man dieses "Warteding" -Ding verwenden. Wie kann ich das tun? Danke.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post