public void TestExecuteAsynchronous()
        {
            bool set = false;
            ActionDispatcherTask task = ActionDispatcherTask.Create(() => set = true);

            Assert.AreEqual(DispatcherTaskState.Queued, task.TaskState);

            task.Execute(false);

            Assert.IsTrue(set);
            Assert.AreEqual(DispatcherTaskState.CompletedQueued, task.TaskState);
        }
        public void TestExecuteException()
        {
            Exception            exception = new Exception();
            ActionDispatcherTask task      = ActionDispatcherTask.Create(() => throw exception);

            Assert.AreEqual(DispatcherTaskState.Queued, task.TaskState);

            Assert.ThrowsException <DispatcherException>(() =>
            {
                task.Execute(true);
            });

            Assert.AreEqual(DispatcherTaskState.Failed, task.TaskState);
            Assert.AreEqual(exception, task.Exception);
        }