使用Await异步操作的方法

📅 2026/7/19 5:10:56
使用Await异步操作的方法
无参数的操作privateasyncTaskDoCleanup(){intdays(int)numRetentionDays.Value;varresultMessageBox.Show($确认删除{days}天前的历史数据\n此操作不可恢复,确认清理,MessageBoxButtons.YesNo,MessageBoxIcon.Warning);if(result!DialogResult.Yes)return;btnClean.Enabledfalse;progressBar.Visibletrue;lblStatus.Text正在清理中...;awaitTask.Run((){DeletedCount_storageService.CleanOldData(days);});progressBar.Visiblefalse;btnClean.Enabledtrue;MessageBox.Show($清理完成\n共删除{DeletedCount}条历史数据。,清理完成,MessageBoxButtons.OK,MessageBoxIcon.Information);DialogResultDialogResult.OK;Close();}调用的方法按钮事件btnClean.Clickasync(s,e)awaitDoCleanup();其中多线程操作为awaitTask.Run((){DeletedCount_storageService.CleanOldData(days);});带参数的异步操作方法/// summary/// 云端登录验证返回完整用户信息/// /summarypublicasyncTaskCloudLoginResultCloudLoginAsync(stringusername,stringpassword){try{varrequestnew{username,password};varcontentnewStringContent(JsonSerializer.Serialize(request,newJsonSerializerOptions{PropertyNamingPolicyJsonNamingPolicy.CamelCase}),Encoding.UTF8,application/json);varresponseawait_httpClient.PostAsync(${_apiBaseUrl}/api/v1/auth/client-login,content);if(response.IsSuccessStatusCode){varjsonawaitresponse.Content.ReadAsStringAsync();varresultJsonSerializer.DeserializeCloudLoginResponse(json,newJsonSerializerOptions{PropertyNameCaseInsensitivetrue});if(result!nullresult.Successresult.User!null){returnnewCloudLoginResult{Successtrue,Userresult.User};}}returnnewCloudLoginResult{Successfalse,Message用户名或密码错误};}catch(Exceptionex){returnnewCloudLoginResult{Successfalse,Message$网络异常:{ex.Message}};}}调用方法CloudLoginResultcloudResultawait_cloudSyncService.CloudLoginAsync(username,password);