CodeZineより。
確かにこの実装は、Webアプリのバッチジョブに使えると思います。が、提供されているソースコードには、いくつかの課題が残っています。
- Task終了時にInvalidOperationExceptionが発生する。
- その影響で、複数のTaskを登録していた場合、最初に終了するTaskとともに他のTaskも終了してしまう。
- FinishCountに指定した数よりも、1回余計に実行される。
- Taskが実行される時間間隔は、あまり正確ではない。
- 例えば、cacheオブジェクトの有効期間TimeSpanを1分に設定した場合、毎回20秒弱もずれたりする。
多少変更すれば使えそうなので、ソースをメモして置きます。
ASP.NETでWindowsサービスのような機能を実装する方法 †