所以我最近被告知我如何使用我的.ContinueWith for Tasks并不是使用它们的正确方法.我还没有在互联网上找到这方面的证据,所以我会问你们,看看答案是什么.这是我如何使用的例子.ContinueWith:
public Task DoSomething()
{
return Task.Factory.StartNew(() =>
{
Console.WriteLine("Step 1");
})
.ContinueWith((prevTask) =>
{
Console.WriteLine("Step 2");
})
.ContinueWith((prevTask) =>
{
Console.WriteLine("Step 3");
});
}
Run Code Online (Sandbox Code Playgroud)
现在我知道这是一个简单的例子,它运行得非常快,但只是假设每个任务都进行了更长时间的操作.所以,我被告知在.ContinueWith中,你需要说prevTask.Wait(); 否则你可以在上一个任务完成之前完成工作.这甚至可能吗?我假设我的第二个和第三个任务只会在前一个任务完成后运行.
我被告知如何编写代码:
public Task DoSomething()
{
return Task.Factory.StartNew(() =>
{
Console.WriteLine("Step 1");
})
.ContinueWith((prevTask) =>
{
prevTask.Wait();
Console.WriteLine("Step 2");
})
.ContinueWith((prevTask) =>
{
prevTask.Wait();
Console.WriteLine("Step 3");
});
}
Run Code Online (Sandbox Code Playgroud) Windows窗体扩展方法Invoke()不接受lambda表达式,我们不必首先将它类型转换为类似Action的委托类型.这让我想知道,如果lambda表达式(带有主体)不是显式委托或表达式,它的类型是什么?
就投资最大价值而言,在托管端到端 Kafka 事件源方面,AWS MSK 与 Confluence 相比如何?
用于比较的主要标准是: