public CustomAction WaitNewGambling(IEnumerator <CustomAction> customActions) { try { while (true) { if (ControllerCancelToken.IsCancellationRequested) { ControllerCancelToken = ControllerCancelToken.Reset(); return(null); } var picBuffer = ((ITakesScreenshot)Instance).GetScreenshot().AsByteArray; var bitmap_Cut = PictureHelper.ProcessImage(_trackingArea, picBuffer); //bitmap_Cut.Save($@"C:\Users\NGPONG\Desktop\SmartTools\SmartTools\SmartTools\bin\Release\image\image_{(index++).ToString()}.png"); var page = Tesseract.Process(bitmap_Cut, PageSegMode.SingleBlock); var readByPic = page.GetText(); // Dispose Unmanaged variable because of the calling recursive functions Array.Clear(picBuffer, 0, picBuffer.Length); page.Dispose(); if (Regex.IsMatch(readByPic, "开局")) { double balance; var response = Config.GetBalanceAsync(); var isMatch = double.TryParse(response.Result, out balance); // Return HTML code maybe. if (isMatch) { OnProcessing.Invoke(balance.ToString()); // Update GUI balance display. } // To call back function. break; } GC.Collect(); } return(customActions.MoveNext <CustomAction>()); } catch (Exception e) { LogHelper.Error(e); return(null); } }
public void Stop() { ControllerCancelToken.Cancel(); // Clear action queue this._actionsQueue = null; }