namespace Amib.Threading.Internal
{
    /// 
    /// An internal delegate to call when the WorkItem starts or completes
    /// 
    internal delegate void WorkItemStateCallback(WorkItem workItem);
    internal interface IInternalWorkItemResult
    {
        event WorkItemStateCallback OnWorkItemStarted;
        event WorkItemStateCallback OnWorkItemCompleted;
    }
    internal interface IInternalWaitableResult
    {
        /// 
        /// This method is intent for internal use.
        /// 
        IWorkItemResult GetWorkItemResult();
    }
    public interface IHasWorkItemPriority
    {
        WorkItemPriority WorkItemPriority { get; }
    }
}