【发布时间】:2020-08-10 06:41:46
【问题描述】:
我将如何从我在任务列表中运行的任务池返回两种不同类型的结果?在我的代码中,我想在任务池的帮助下同时在 startCategorysearchAsync 中运行两种不同的方法,但是它们具有不同的返回值,一个带有类别返回参数,一个带有 SubCategoryReturnmparameter SubCategory 是 Category 的子项吗?这是我的代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using System.Windows.Input;
using DataConverter.Checkers;
using DataConverter.Converters;
using DataConverter.Command;
using DataConverter.Objects;
using AsyncAwaitBestPractices.MVVM;
namespace DataConverter.ViewModels
{
public class MainWindowViewModel : BaseViewModel
{
public List<Category> parentCategories = new List<Category>();
public List<SubCategory> subCategories1 = new List<SubCategory>();
public string path { get; set; }
public bool runButtonWorks { get; set; }
public string errorMessage { get; set; }
public bool TextIsVisible { get; set; }
public ICommand run { get; set; }
private bool _isBusy;
public bool IsBusy
{
get => _isBusy;
private set => Set(ref _isBusy, value);
}
private void Set(ref bool isBusy, bool value)
{
throw new NotImplementedException();
}
public AsyncCommand start { get; private set;}
public MainWindowViewModel()
{
runButtonWorks = true;
start = new AsyncCommand(startCategorysearchAsync);
start = new AsyncCommand(startSubCategorysearchAsync);
}
private async Task startCategorysearchAsync()
{
FileCheck check = new FileCheck(path);
List<List<SubCategory>> subCategoriesList = new List<List<SubCategory>>();
List<Task> tasks = new List<Task>();
CategoryConverter converter = new CategoryConverter(path);
try
{
runButtonWorks = false;
tasks.Add(Task.Run(() => converter.getCategoryListExcel()));
tasks.Add(Task.Run(() => converter.getSubCategory()));
await Task.WhenAll(tasks);
}
finally
{
}
}
private bool CanExecuteSubmit()
{
return !IsBusy;
}
}
}
【问题讨论】:
标签: c# list async-await task