using MyControls; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MyProcesses.Alogrithms { public class TestTool : TAlgorithm { public TestTool() { strProcessClass = "MyProcesses.Alogrithms.TestTool"; strProcessName = "测试工具"; Params.Inputs.Add("输入", "我是输入"); Params.Outputs.Add("输出", ""); } #region 阻塞运行方式 /// /// 阻塞运行方式 /// /// //public override bool Run() //{ // try // { // InitRunParams(); // #region 裁剪区域 // object DomainImage = null; // if (!ReduceDomainImage(InputImage, ref DomainImage)) // { // Msg = "裁剪区域失败"; // Result = false; // return false; // } // Record = new MsgRecord(); // #endregion // #region 算子逻辑 // string input = Params.Inputs["输入"].ToString(); // Params.Outputs.Add("输出", "我是输出"); // #endregion // #region 结果处理 // ((MsgRecord)Record).AddRecord(input, 0, 0); // #endregion // #region 生成OutputImage给后续处理 // try // { // OutputImage = DomainImage; // } // catch (Exception ex) // { // Msg = "生成OutputImage失败,原因是:" + ex.ToString(); // Result = false; // return false; // } // #endregion // return Result; // } // catch // { // OutputImage = null; // Result = false; // Msg = string.Format("运行出现异常"); // return false; // } // finally // { // if (!Result) // OutputImage = null; // bCompleted = true; // } //} #endregion /// /// 非阻塞运行方式 /// public override void TAlgorithmMain() { #region 初始化变量 #endregion try { //if (InputImage == null) //{ // Msg = "输入图片为空"; // Result = false; // return; //} #region 裁剪区域 object DomainImage = null; //if (!ReduceDomainImage(InputImage, ref DomainImage)) //{ // Msg = "裁剪区域失败"; // Result = false; // return; //} #endregion #region 算子逻辑 string input = Params.Inputs["输入"].ToString(); Params.Outputs.Add("输出", input); #endregion #region 生成OutputImage给后续处理 try { OutputImage = DomainImage; } catch (Exception ex) { Msg = "生成OutputImage失败,原因是:" + ex.ToString(); Result = false; return; } #endregion if (Msg == "运行超时") { Result = false; return; } Msg = "运行成功"; Result = true; return; } catch (Exception ex) { Msg = "运行失败,原因是:" + ex.ToString().TrimEnd(); OutputImage = null; Result = false; return; } finally { if (!Result) { Params.Outputs.Add("输出", ""); } bCompleted = true; #region 内存释放 #endregion } } } }