using System;

namespace Quadarax.Foundation.Core.Thread
{
    public interface IWorker : IDisposable
    {
        bool IsRunning { get; }
        bool IsTransient { get; }
        string Name { get; }
        TimeSpan Timeout { get; }
        void Start(bool silentlyIfNotValidState = false);
        void Start(TimeSpan runDelay,bool silentlyIfNotValidState = false);
        void Stop(bool silentlyIfNotValidState = false);
    }
}