aiming/iterator-tasks — pull request #1 by kyubuns (2013-06-29 18:04:49+00:00)
Title: TaskのOnCompleteの挙動修正/TaskのCancel,ForceCancelを繋げて書けるようにした

■TaskのOnCompleteの挙動修正
- 既にそこまでのTaskが完了している場合に、OnCompleteで設定したcallbackが宣言時に呼び出されていたのでUpdate時に呼び出されるように修正

```
Task.Empty().OnComplete(_ => Console.WriteLine("1")).OnComplete(_ => Console.WriteLine("2")).Start(runner);
Console.WriteLine("---start---");
runner.Update(20);
```

before:
```
1
2
---start---
```

after
```
---start---
1
2
```

■TaskのCancel,ForceCancelを繋げて書けるようにした
```
{
hoge().OnComplete(Console.WriteLine("Complete!!!"));
}

Task hoge() {
if (なにかしらの事情で実行してはならない) return Task.Empty().ForceCancel();

//通常処理
return new Task(Worker);
}
```
みたいな関数が作りたかった。

■
それ想定していた挙動と違うとか、
今までのコードの挙動が変わるとか、
既にそれは実現できるとかあったら
つっこみおねがいします。