public void Abandon(TimeSpan timeout)
        {
            TimeoutHelper.ThrowIfNegativeArgument(timeout);

            this.MarkAsAbandoned();
            WorkflowApplication.DiscardInstance(this.PersistenceManager, timeout);
        }