コード例 #1
0
ファイル: ThreadPoolTest.cs プロジェクト: zhuthree/cat.net
        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();
                }
            }
        }
コード例 #2
0
ファイル: ThreadPoolTest.cs プロジェクト: zhuthree/cat.net
        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();
                }
            }
        }