void cam_PreviewFrameAvailable(ICameraCaptureDevice device, object sender) { if (isProcessing) { return; } cameraDevice.PreviewFrameAvailable -= previewFrameHandler; isProcessing = true; int len = (int)device.PreviewResolution.Width * (int)device.PreviewResolution.Height; if (pixels == null) { pixels = new byte[len]; } device.GetPreviewBufferY(pixels); // Byte[] result = new Byte[10000]; int width = (int)device.PreviewResolution.Width; int height = (int)device.PreviewResolution.Height; ThreadArguments ta = new ThreadArguments(); ta.height = height; ta.width = width; ta.pixels = pixels; Deployment.Current.Dispatcher.BeginInvoke(delegate() { bw.RunWorkerAsync(ta); }); }
/// <summary> /// Reads input from the user. /// </summary> /// <param name="obj">The thread arguments.</param> private void ReadInput(object obj) { ThreadArguments localArgs = (ThreadArguments)obj; ConsoleKey key; while (!localArgs.Exit) { key = Console.ReadKey(true).Key; switch (key) { case ConsoleKey.UpArrow: FireOnKeyPressed(InputTypes.Up); break; case ConsoleKey.DownArrow: FireOnKeyPressed(InputTypes.Down); break; case ConsoleKey.Spacebar: FireOnKeyPressed(InputTypes.Shoot); break; case ConsoleKey.C: FireOnKeyPressed(InputTypes.ChangeLayer); break; } } }
bool SubmitWork(BackgroundWorker worker) { if (ExecutionProgress > ExecutionHigherBound || GroupsCount < 1) { return(false); } var args = new ThreadArguments(); args.Executable = ExecutablePath; args.Config = ExecutionConfigs[GroupCursor]; args.Arguments = ArgumentsTextBox.Text; args.Variable = ExecutionProgress; args.GroupIndex = GroupCursor; GroupCursor++; if (GroupCursor >= GroupsCount) { GroupCursor = 0; ExecutionProgress += ExecutionStep; } worker.RunWorkerAsync(args); return(true); }
public void StartThread(string destination, int port) { thread = new Thread(new ParameterizedThreadStart(Run)); thread.Name = "Client"; var arguments = new ThreadArguments(); arguments.destination = destination; arguments.port = port; thread.Start(arguments); }
private void bw_DoWork(object sender, DoWorkEventArgs e) { Byte[] result = new Byte[10000]; BackgroundWorker worker = sender as BackgroundWorker; ThreadArguments ta = e.Argument as ThreadArguments; int resLen = Scanner.MWBscanGrayscaleImage(ta.pixels, ta.width, ta.height, result); if (lastTime != null && lastTime.Ticks > 0) { long timePrev = lastTime.Ticks; long timeNow = DateTime.Now.Ticks; long timeDifference = (timeNow - timePrev) / 10000; System.Diagnostics.Debug.WriteLine("frame time: {0}", timeDifference); } lastTime = DateTime.Now; //ignore results shorter than 4 characters for barcodes with weak checksum if (resLen > 4 || ((resLen > 0 && Scanner.MWBgetLastType() != Scanner.FOUND_39 && Scanner.MWBgetLastType() != Scanner.FOUND_25_INTERLEAVED && Scanner.MWBgetLastType() != Scanner.FOUND_25_STANDARD))) { string resultString = System.Text.Encoding.UTF8.GetString(result, 0, resLen); int bcType = Scanner.MWBgetLastType(); String typeName = BarcodeHelper.getBarcodeName(bcType); Deployment.Current.Dispatcher.BeginInvoke(delegate() { BarcodeHelper.scannerResult = new ScannerResult(); BarcodeHelper.resultAvailable = true; BarcodeHelper.scannerResult.code = resultString; BarcodeHelper.scannerResult.type = typeName; Byte[] binArray = new Byte[resLen]; for (int i = 0; i < resLen; i++) { binArray[i] = result[i]; } BarcodeHelper.scannerResult.bytes = binArray; stopCamera(); NavigationService.GoBack(); }); } else { isProcessing = false; cameraDevice.PreviewFrameAvailable += previewFrameHandler; } }
void cam_PreviewFrameAvailable(ICameraCaptureDevice device, object sender) { if (activeThreads >= param_maxThreads || resultDisplayed) { return; } if (isClosing) { return; } activeThreads++; System.Diagnostics.Debug.WriteLine("ActiveThreads: " + activeThreads.ToString()); isProcessing = true; int len = (int)device.PreviewResolution.Width * (int)device.PreviewResolution.Height; if (pixels == null) { pixels = new byte[len]; } device.GetPreviewBufferY(pixels); // Byte[] result = new Byte[10000]; int width = (int)device.PreviewResolution.Width; int height = (int)device.PreviewResolution.Height; ThreadArguments ta = new ThreadArguments(); ta.height = height; ta.width = width; ta.pixels = pixels; BackgroundWorker bw1 = new BackgroundWorker(); bw1.WorkerReportsProgress = false; bw1.WorkerSupportsCancellation = false; bw1.DoWork += new DoWorkEventHandler(bw_DoWork); bw1.RunWorkerAsync(ta); }
private static void CalculatePi(int mode) { var threads = new Thread[ThreadsCount]; var stepsPerThread = _stepCount / ThreadsCount; var step = 1.0 / _stepCount; CriticalSection.SetSpinCount(_spinCount); for (var i = 0; i < threads.Length; ++i) { var thread = mode == StrictMode ? new Thread(Calculate) : new Thread(CalculateWithTry); threads[i] = thread; var threadArguments = new ThreadArguments(i * stepsPerThread, (i + 1) * stepsPerThread, step); thread.Start(threadArguments); } foreach (var thread in threads) { thread.Join(); } }
private void bw_DoWork(object sender, DoWorkEventArgs e) { Byte[] result = new Byte[10000]; BackgroundWorker worker = sender as BackgroundWorker; ThreadArguments ta = e.Argument as ThreadArguments; int resLen = Scanner.MWBscanGrayscaleImage(ta.pixels, ta.width, ta.height, result); //ignore positive result if closing is in progress if (isClosing) { resLen = -1; } if (resLen > 0 && resultDisplayed) { resLen = -1; } MWResult mwResult = null; if (resLen > 0 && Scanner.MWBgetResultType() == Scanner.MWB_RESULT_TYPE_MW) { MWResults results = new MWResults(result); if (results.count > 0) { mwResult = results.getResult(0); result = mwResult.bytes; } } if (lastTime != null && lastTime.Ticks > 0) { long timePrev = lastTime.Ticks; long timeNow = DateTime.Now.Ticks; long timeDifference = (timeNow - timePrev) / 10000; System.Diagnostics.Debug.WriteLine("frame time: {0}", timeDifference); } lastTime = DateTime.Now; //ignore results shorter than 4 characters for barcodes with weak checksum if (mwResult != null && mwResult.bytesLength > 4 || (mwResult != null && mwResult.bytesLength > 0 && mwResult.type != Scanner.FOUND_39 && mwResult.type != Scanner.FOUND_25_INTERLEAVED && mwResult.type != Scanner.FOUND_25_STANDARD)) { resultDisplayed = true; String typeName = BarcodeHelper.getBarcodeName(mwResult); Deployment.Current.Dispatcher.BeginInvoke(delegate() { isClosing = true; BarcodeHelper.scannerResult = new ScannerResult(); BarcodeHelper.resultAvailable = true; BarcodeHelper.scannerResult.code = mwResult.text; BarcodeHelper.scannerResult.type = BarcodeHelper.getBarcodeName(mwResult); BarcodeHelper.scannerResult.isGS1 = mwResult.isGS1; Byte[] binArray = new Byte[mwResult.bytesLength]; for (int i = 0; i < mwResult.bytesLength; i++) { binArray[i] = mwResult.bytes[i]; } BarcodeHelper.scannerResult.bytes = binArray; stopCamera(); NavigationService.GoBack(); isProcessing = false; resultDisplayed = false; }); } else { isProcessing = false; } activeThreads--; }
void cam_PreviewFrameAvailable(ICameraCaptureDevice device, object sender) { if (closeScanner) { closeScanner = false; Deployment.Current.Dispatcher.BeginInvoke(delegate() { string resultString = "{\"type\":" + JsonHelper.Serialize("Cancel") + "}"; PluginResult pResult = new PluginResult(PluginResult.Status.OK, resultString); pResult.KeepCallback = true; MWBarcodeScanner.mwbScanner.DispatchCommandResult(pResult, MWBarcodeScanner.kallbackID); if (this.NavigationService.CanGoBack) { this.NavigationService.GoBack(); } return; }); } if (activeThreads >= param_maxThreads || resultDisplayed) { return; } if (isClosing) { return; } activeThreads++; // System.Diagnostics.Debug.WriteLine("ActiveThreads: " + activeThreads.ToString()); isProcessing = true; int len = (int)device.PreviewResolution.Width * (int)device.PreviewResolution.Height; if (pixels == null) { pixels = new byte[len]; } device.GetPreviewBufferY(pixels); // Byte[] result = new Byte[10000]; int width = (int)device.PreviewResolution.Width; int height = (int)device.PreviewResolution.Height; ThreadArguments ta = new ThreadArguments(); ta.height = height; ta.width = width; ta.pixels = pixels; BackgroundWorker bw1 = new BackgroundWorker(); bw1.WorkerReportsProgress = false; bw1.WorkerSupportsCancellation = false; bw1.DoWork += new DoWorkEventHandler(bw_DoWork); bw1.RunWorkerAsync(ta); }
private void bw_DoWork(object sender, DoWorkEventArgs e) { Byte[] result = new Byte[10000]; BackgroundWorker worker = sender as BackgroundWorker; ThreadArguments ta = e.Argument as ThreadArguments; int resLen = Scanner.MWBscanGrayscaleImage(ta.pixels, ta.width, ta.height, result); //ignore positive result if closing is in progress if (isClosing) { resLen = -1; } if (resLen > 0 && resultDisplayed) { resLen = -1; } MWResult mwResult = null; if (resLen > 0 && Scanner.MWBgetResultType() == Scanner.MWB_RESULT_TYPE_MW) { MWResults results = new MWResults(result); if (results.count > 0) { mwResult = results.getResult(0); result = mwResult.bytes; } } if (lastTime != null && lastTime.Ticks > 0) { long timePrev = lastTime.Ticks; long timeNow = DateTime.Now.Ticks; long timeDifference = (timeNow - timePrev) / 10000; //System.Diagnostics.Debug.WriteLine("frame time: {0}", timeDifference); } lastTime = DateTime.Now; //ignore results shorter than 4 characters for barcodes with weak checksum if (mwResult != null && mwResult.bytesLength > 4 || (mwResult != null && mwResult.bytesLength > 0 && mwResult.type != Scanner.FOUND_39 && mwResult.type != Scanner.FOUND_25_INTERLEAVED && mwResult.type != Scanner.FOUND_25_STANDARD)) { Scanner.MWBsetDuplicate(mwResult.bytes, mwResult.bytesLength); resultDisplayed = true; String typeName = BarcodeHelper.getBarcodeName(mwResult); Deployment.Current.Dispatcher.BeginInvoke(delegate() { BarcodeHelper.scannerResult = new ScannerResult(); BarcodeHelper.resultAvailable = true; BarcodeHelper.scannerResult.code = mwResult.text; BarcodeHelper.scannerResult.type = BarcodeHelper.getBarcodeName(mwResult); BarcodeHelper.scannerResult.isGS1 = mwResult.isGS1; if (mwResult.locationPoints != null) { BarcodeHelper.scannerResult.location = "{\"p1\":{\"x\":" + floatToStrDot(mwResult.locationPoints.p1.x) + ", \"y\":" + floatToStrDot(mwResult.locationPoints.p1.y) + "}," + "\"p2\":{\"x\":" + floatToStrDot(mwResult.locationPoints.p2.x) + ", \"y\":" + floatToStrDot(mwResult.locationPoints.p2.y) + "}," + "\"p3\":{\"x\":" + floatToStrDot(mwResult.locationPoints.p3.x) + ", \"y\":" + floatToStrDot(mwResult.locationPoints.p3.y) + "}," + "\"p4\":{\"x\":" + floatToStrDot(mwResult.locationPoints.p4.x) + ", \"y\":" + floatToStrDot(mwResult.locationPoints.p4.y) + "}}"; } else { BarcodeHelper.scannerResult.location = "false"; } BarcodeHelper.scannerResult.imageWidth = mwResult.imageWidth; BarcodeHelper.scannerResult.imageHeight = mwResult.imageHeight; Byte[] binArray = new Byte[mwResult.bytesLength]; for (int i = 0; i < mwResult.bytesLength; i++) { binArray[i] = mwResult.bytes[i]; } BarcodeHelper.scannerResult.bytes = binArray; stopCamera(); string resultString = "{\"code\":" + JsonHelper.Serialize(BarcodeHelper.scannerResult.code) + "," + "\"type\":" + JsonHelper.Serialize(BarcodeHelper.scannerResult.type) + "," + "\"bytes\":" + JsonHelper.Serialize(BarcodeHelper.scannerResult.bytes) + "," + "\"isGS1\":" + JsonHelper.Serialize(BarcodeHelper.scannerResult.isGS1) + "," + "\"location\":" + BarcodeHelper.scannerResult.location + "," + "\"imageWidth\":" + BarcodeHelper.scannerResult.imageWidth + "," + "\"imageHeight\":" + BarcodeHelper.scannerResult.imageHeight + "}"; PluginResult pResult = new PluginResult(PluginResult.Status.OK, resultString); pResult.KeepCallback = true; MWBarcodeScanner.mwbScanner.DispatchCommandResult(pResult, MWBarcodeScanner.kallbackID); if (param_CloseScannerOnDecode) { isClosing = true; if (isPage) { NavigationService.GoBack(); } else { MWBarcodeScanner.mwbScanner.stopScanner(""); } resultDisplayed = false; } isProcessing = false; }); } else { isProcessing = false; } activeThreads--; }
void cam_PreviewFrameAvailable(ICameraCaptureDevice device, object sender) { if (closeScanner) { closeScanner = false; Deployment.Current.Dispatcher.BeginInvoke(delegate() { string resultString = "{\"type\":" + JsonHelper.Serialize("Cancel") + "}"; PluginResult pResult = new PluginResult(PluginResult.Status.OK, resultString); pResult.KeepCallback = true; MWBarcodeScanner.mwbScanner.DispatchCommandResult(pResult, MWBarcodeScanner.kallbackID); if (this.NavigationService.CanGoBack) { this.NavigationService.GoBack(); } return; }); } if (activeThreads >= param_maxThreads || resultDisplayed) { return; } if (isClosing) { return; } activeThreads++; // System.Diagnostics.Debug.WriteLine("ActiveThreads: " + activeThreads.ToString()); isProcessing = true; int len = (int)device.PreviewResolution.Width * (int)device.PreviewResolution.Height; if (pixels == null) pixels = new byte[len]; device.GetPreviewBufferY(pixels); // Byte[] result = new Byte[10000]; int width = (int)device.PreviewResolution.Width; int height = (int)device.PreviewResolution.Height; ThreadArguments ta = new ThreadArguments(); ta.height = height; ta.width = width; ta.pixels = pixels; BackgroundWorker bw1 = new BackgroundWorker(); bw1.WorkerReportsProgress = false; bw1.WorkerSupportsCancellation = false; bw1.DoWork += new DoWorkEventHandler(bw_DoWork); bw1.RunWorkerAsync(ta); }
void cam_PreviewFrameAvailable(ICameraCaptureDevice device, object sender) { if (activeThreads >= param_maxThreads || resultDisplayed) { return; } if (isClosing) { return; } activeThreads++; System.Diagnostics.Debug.WriteLine("ActiveThreads: " + activeThreads.ToString()); isProcessing = true; int len = (int)device.PreviewResolution.Width * (int)device.PreviewResolution.Height; if (pixels == null) pixels = new byte[len]; device.GetPreviewBufferY(pixels); // Byte[] result = new Byte[10000]; int width = (int)device.PreviewResolution.Width; int height = (int)device.PreviewResolution.Height; ThreadArguments ta = new ThreadArguments(); ta.height = height; ta.width = width; ta.pixels = pixels; BackgroundWorker bw1 = new BackgroundWorker(); bw1.WorkerReportsProgress = false; bw1.WorkerSupportsCancellation = false; bw1.DoWork += new DoWorkEventHandler(bw_DoWork); bw1.RunWorkerAsync(ta); }
void cam_PreviewFrameAvailable(ICameraCaptureDevice device, object sender) { if (isProcessing) { return; } cameraDevice.PreviewFrameAvailable -= previewFrameHandler; isProcessing = true; int len = (int)device.PreviewResolution.Width * (int)device.PreviewResolution.Height; if (pixels == null) pixels = new byte[len]; device.GetPreviewBufferY(pixels); // Byte[] result = new Byte[10000]; int width = (int)device.PreviewResolution.Width; int height = (int)device.PreviewResolution.Height; ThreadArguments ta = new ThreadArguments(); ta.height = height; ta.width = width; ta.pixels = pixels; Deployment.Current.Dispatcher.BeginInvoke(delegate() { bw.RunWorkerAsync(ta); }); }
/// <summary> /// Initializes a new instance of the <see cref="ControlPlayer"/> class. /// </summary> public ControlPlayer() { this.workerThreadArguments = new ThreadArguments(); }