You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
|
|
|
|
namespace Rs.MotionPlat.Flow
|
|
|
|
|
{
|
|
|
|
|
public class BaseFlow
|
|
|
|
|
{
|
|
|
|
|
public string FlowName { get; set; }
|
|
|
|
|
protected bool b_IsRun = false;
|
|
|
|
|
protected bool b_IsStop = true;
|
|
|
|
|
private Task mainTask;
|
|
|
|
|
protected int stopWaitTime = 10;
|
|
|
|
|
protected int sleepTime = 10;
|
|
|
|
|
public BaseFlow() {
|
|
|
|
|
mainTask = new Task(task);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public virtual void Run()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
private void task() {
|
|
|
|
|
while (b_IsRun)
|
|
|
|
|
{
|
|
|
|
|
if(b_IsStop)
|
|
|
|
|
{
|
|
|
|
|
Thread.Sleep(stopWaitTime);
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
Run();
|
|
|
|
|
Thread.Sleep(sleepTime);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public virtual void Stop()
|
|
|
|
|
{
|
|
|
|
|
b_IsStop = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public virtual void Quit()
|
|
|
|
|
{
|
|
|
|
|
if(mainTask!=null)
|
|
|
|
|
{
|
|
|
|
|
b_IsRun = false;
|
|
|
|
|
mainTask.Wait();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public virtual void Start()
|
|
|
|
|
{
|
|
|
|
|
if(mainTask!=null && (mainTask.Status== TaskStatus.Created || mainTask.Status== TaskStatus.WaitingToRun))
|
|
|
|
|
{
|
|
|
|
|
b_IsRun= true;
|
|
|
|
|
b_IsStop = false;
|
|
|
|
|
mainTask.Start();
|
|
|
|
|
}
|
|
|
|
|
else if(mainTask.Status== TaskStatus.Running)
|
|
|
|
|
{
|
|
|
|
|
b_IsStop = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|