我希望我的同仁办法在结束时能够回响。 只要我能看到,我可以这样做。
(1) 我的任务代表人工背叛
public Task DoWorkAsync(DoWorkCompletedCallback completedCallback)
{
return Task.Factory.StartNew(
{
//do work
//call callback manually
completedCallback();
});
}
2) 任务代表的任务被放弃
public Task DoWorkAsync(DoWorkCompletedCallback completedCallback)
{
return Task.Factory.StartNew(
{
//do work
}
).ContinueWith(completedCallback); //assign callback to Task
}
3) 辞退召集人的任务
public Task DoWorkAsync()
{
return Task.Factory.StartNew(
{
//do work
});
}
public void SomeClientCode()
{
Task doingWork = DoWorkAsync();
doingWork.ContinueWith(OnWorkCompleted);
}
我的感觉是,3个是更加正确的,因为它从这种方法中解脱了呼吁,意味着客户守则能够以它认为合适的任何方式管理任务(使用警示、投票等),而这似乎是所有任务。 然而,如果在客户代码背书之前完成工作,情况如何?
是否有普遍接受的办法来做到这一点,还是太新?
这样做是否比1更有利?