using NDSD_TouchSocket; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace NDSD_Screwdriver.Tool { public class DengTool { private Queue _methodQueue; private CancellationTokenSource sendCancellationTokenSource; /// /// 输出端口操作 /// private DOperate DOperateInfo; public DengTool() { DOperateInfo = new DOperate(); _methodQueue =new Queue(); } /// /// RFID刷新任务 /// // private void SendRunningTask() // { // sendCancellationTokenSource = new CancellationTokenSource(); // Task.Run(() => // { // while (!sendCancellationTokenSource.Token.IsCancellationRequested) // { // while (_methodQueue.Count > 0) // { // var q = _methodQueue.Dequeue(); // // -1 DClose > 0 DTimeOpen =0 Dopen // //-1 DClose > 0 DTimeOpen =0 Dopen // if (q.delay == -1) // { // DOperateInfo.DClose(q.port); // } // // if (q.delay == 0) // { // DOperateInfo.DClose(q.port); // Thread.Sleep(100); // 模拟一些长时间的工作 // DOperateInfo.DOpen(q.port); // } // // if (q.delay ==1) // { // // DOperateInfo.DTimeOpen(q.port, q.delay); // } // // Thread.Sleep(100); // 模拟一些长时间的工作 // } // // Thread.Sleep(10); // 模拟一些长时间的工作 // } // }, sendCancellationTokenSource.Token); // } public void AddMq(DOperateEntity entity) { _methodQueue.Enqueue(entity); } public void Stop() { _methodQueue.Clear(); sendCancellationTokenSource.Cancel(); } public void Start() { // SendRunningTask(); } public void Restart() { Stop(); Thread.Sleep(200); Start(); } } }