hab mal eine Frage die ein bisschen ins Verständnis von Tasks geht:
(Vereinfachte) Ausgangslage: Hab eine List<string> die zu verschiedenen Dateien führen, diese sollen in einen MultipartFormDataContent gepackt und dann via httpclient.PostAsynch hochgeschickt werden und danach gelöscht werden.
Von der Struktur her in etwa so:
interface IServiceA
{
Task<MultipartFormDataContent> BuildFormData(IEnumerable<string> filePaths);
}
interface IServiceB
{
Task UploadFormData(MultipartFormDataContent formData);
}
class ServiceC
{
async Task FetchAndUploadFiles()
{
var files = await GetFileListFromSomewhere();
var formData = await _iServiceA.BuildFormData(files);
await _iServiceB.UploadFormData(formData);
}
}
Hier ist jetzt die Frage wie der beste Weg ist dies anzugehen:
Wenn ich das File.Delete direkt hinter den UploadFormData() packe sind die Dateien natürlich vom Prozess noch blockiert.
Für eine einzelne Datei würde ich einfach ein using-Statement für den FileStream um die Methoden setzen und danach löschen.
Wenn ich allerdings X Dateien habe ist mir nicht ganz klar wie hier der saubere weg aussieht.
Beste Grüße
emuuu