private static void SubTask1(object forkedTransaction) { IForkedTransaction transaction = null; try { transaction = (IForkedTransaction)forkedTransaction; transaction.Fork(); Cat.LogEvent("SubTask1Event", "SubTask1Event"); transaction.Status = CatConstants.SUCCESS; } finally { if (null != transaction) { transaction.Complete(); } } }
private static void Task(object forkedTransaction) { IForkedTransaction transaction = null; try { transaction = (IForkedTransaction)forkedTransaction; transaction.Fork(); Cat.LogEvent("TaskEvent", "TaskEvent"); IForkedTransaction subTask1Tranasction = Cat.NewForkedTransaction("SubTask1", "SubTask1"); ThreadPool.QueueUserWorkItem(SubTask1, subTask1Tranasction); IForkedTransaction subTask2Tranasction = Cat.NewForkedTransaction("SubTask2", "SubTask2"); ThreadPool.QueueUserWorkItem(SubTask2, subTask2Tranasction); transaction.Status = CatConstants.SUCCESS; } finally { if (null != transaction) { transaction.Complete(); } } }