-1

我在 WinForm 上有这段代码:

private void buttonStart_Click(object sender, EventArgs e)
{
    Task.Factory.StartNew(() => ThreadFunction())
        .ContinueWith(t => ThreadFunctionComplete()
        , CancellationToken.None
        , TaskContinuationOptions.None
        , TaskScheduler.FromCurrentSynchronizationContext());

    ThreadFinished();
}

ThreadFinished()只想在ThreadFunctionComplete()完成后开始。好吧,我可以放在ThreadFinished()末尾ThreadFunctionComplete(),但是对于流程的某些工作流程,我不会。可能吗?也许是一种等待/锁定?

4

2 回答 2

4

基本上,您可以简单地调用ContinueWith两次:

Task.Factory.StartNew(....)
            .ContinueWith(...)
            .ContinueWith(...)
于 2013-04-18T07:50:59.447 回答
1

您可以使用 Wait() 但它会阻塞当前线程...

Task.Factory.StartNew(...).Wait();

或添加另一个 ContinueWith()

Task.Factory.StartNew(...).ContinueWith(t => ThreadFinished());
于 2013-04-18T07:51:47.997 回答