Wie bekomme ich die Syntax "Warte" mit der richtigen Syntax?
Posted: 11 Feb 2025, 05:25
Ich habe den folgenden synchronen Code, der gut funktioniert: < /p>
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:
, 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 .
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.
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);
Code: Select all
await using var writer = new StreamWriter(OutputDirectory + @"\export.txt").ConfigureAwait(false);
Code: Select all
await ((StreamWriter)writer).WriteLineAsync(title).ConfigureAwait(false);
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.