我有一个有两种方法的类,Load() 和 Process()。我希望能够将这些作为后台任务单独运行,或者按顺序运行。我喜欢 ContinueWith() 语法,但我无法让它工作。我必须在继续使用的方法上使用 Task 参数,并且不能在初始方法上使用 Task 参数。
我想在没有 lambda 表达式的情况下执行此操作,但我是坚持使用它们,在其中一个方法上强制使用任务参数,还是创建第三种方法 LoadAndProcess()?
void Run()
{
// doesn't work, but I'd like to do it
//Task.Factory.StartNew(MethodNoArguments).ContinueWith(MethodNoArguments);
Console.WriteLine("ContinueWith");
Task.Factory.StartNew(MethodNoArguments).ContinueWith(MethodWithTaskArgument).Wait();
Console.WriteLine("Lambda");
Task.Factory.StartNew(() => { MethodNoArguments(); MethodNoArguments(); }).Wait();
Console.WriteLine("ContinueWith Lambda");
Task.Factory.StartNew(MethodNoArguments).ContinueWith(x => {
MethodNoArguments();
}).Wait();
}
void MethodNoArguments()
{
Console.WriteLine("MethodNoArguments()");
}
void MethodWithTaskArgument(Task t = null)
{
Console.WriteLine("MethodWithTaskArgument()");
}