Popular Posts
Commit file via SVNkit SVNKit version: SvnCommitter.java ROBOCOPY: Robust File Copy for Windows -------------------------------------------------------------------------------    ROBOCOPY     ::     Robust File Copy for Windows --------... JDateField package bruce.lib.swing; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import java.awt.event.A...
Blog Archive
Stats
Thread sample
class MyThread
{
    private int executeInterval = 15;
    public int ExecuteInterval
    {
        get { return this.executeInterval; }
        set { this.executeInterval = value; }
    }
    private int checkFlagInterval = 1;
    public int CheckFlagInterval
    {
        get { return this.checkFlagInterval; }
        set
        {
            this.checkFlagInterval = value < 1 ? 1 : value;
            this.checkFlagInterval = value > this.executeInterval ? this.executeInterval : value;
        }
    }
    private bool flag = true;
    public bool Flag
    {
        get { return this.flag; }
        set { this.flag = value; }
    }
    public void Run()
    {
        int timeout = 0;
        while (this.flag)
        {
            if ((timeout -= checkFlagInterval) < 1)
            {
                // do something
                timeout = this.executeInterval;
            }
            Thread.Sleep(this.checkFlagInterval * 1000);
        }
    }
}
class Program
{
    static void Main(string[] args)
    {
        MyThread myThread = new MyThread();
        Thread thread = new Thread(new ThreadStart(myThread.Run));
        thread.Start();

        while (myThread.Flag)
        {
            myThread.Flag = Console.Read() != 'q';
        }
    }
}
View mobile version