protected virtual async Task OnStopped(string QueueName) { _heartBeatTimer.Stop(); var connectionManager = _services.GetRequiredService <IConnectionManager>(); try { using (TransactionScope transactionScope = new TransactionScope(TransactionScopeOption.RequiresNew, TransactionScopeAsyncFlowOption.Enabled)) using (var dbconnection = await connectionManager.CreateSSSBConnectionAsync(CancellationToken.None)) { await _pubSubHelper.UnSubscribe(dbconnection, TimeSpan.FromDays(365 * 10), _conversationGroup); transactionScope.Complete(); } } catch (Exception ex) { _logger.LogError(ErrorHelper.GetFullMessage(ex)); } }
private void startOffScreenCapture( string aSymbolicLink, uint aStreamIndex, uint aMediaTypeIndex) { mOffScreenCaptureProcess = new Process(); mOffScreenCaptureProcess.StartInfo.FileName = "InterProcessRendererAsync.exe"; mOffScreenCaptureProcess.EnableRaisingEvents = true; mOffScreenCaptureProcess.Exited += mOffScreenCaptureProcess_Exited; mPipeProcessor = new PipeProcessor( "Server", "Client"); mPipeProcessor.MessageDelegateEvent += lPipeProcessor_MessageDelegateEvent; mOffScreenCaptureProcess.StartInfo.Arguments = "SymbolicLink=" + aSymbolicLink + " " + "StreamIndex=" + aStreamIndex + " " + "MediaTypeIndex=" + aMediaTypeIndex + " " + "WindowHandler=" + mVideoPanel.Handle.ToInt64(); mOffScreenCaptureProcess.StartInfo.UseShellExecute = false; try { HeartBeatTimer.Start(); mIsStarted = mOffScreenCaptureProcess.Start(); } catch (Exception) { HeartBeatTimer.Stop(); mIsStarted = false; } }
private void mLaunchButton_Click(object sender, RoutedEventArgs e) { if (mLaunchButton.Content == "Stop") { if (mIsStarted) { closeOffScreenCapture(); HeartBeatTimer.Stop(); mLaunchButton.Content = "Launch"; } mIsStarted = false; return; } var lSourceNode = mSourcesComboBox.SelectedItem as XmlNode; if (lSourceNode == null) { return; } var lNode = lSourceNode.SelectSingleNode("Source.Attributes/Attribute[@Name='MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_SYMBOLIC_LINK']/SingleValue/@Value"); if (lNode == null) { return; } string lSymbolicLink = lNode.Value; lSourceNode = mStreamsComboBox.SelectedItem as XmlNode; if (lSourceNode == null) { return; } lNode = lSourceNode.SelectSingleNode("@Index"); if (lNode == null) { return; } uint lStreamIndex = 0; if (!uint.TryParse(lNode.Value, out lStreamIndex)) { return; } lSourceNode = mMediaTypesComboBox.SelectedItem as XmlNode; if (lSourceNode == null) { return; } lNode = lSourceNode.SelectSingleNode("@Index"); if (lNode == null) { return; } uint lMediaTypeIndex = 0; if (!uint.TryParse(lNode.Value, out lMediaTypeIndex)) { return; } string lextendSymbolicLink = lSymbolicLink + " --options=" + "<?xml version='1.0' encoding='UTF-8'?>" + "<Options>" + "<Option Type='Cursor' Visiblity='True'>" + "<Option.Extensions>" + "<Extension Type='BackImage' Height='100' Width='100' Fill='0x7055ff55' />" + "</Option.Extensions>" + "</Option>" + "</Options>"; lextendSymbolicLink += " --normalize=Landscape"; startOffScreenCapture(lextendSymbolicLink, lStreamIndex, lMediaTypeIndex); mLaunchButton.Content = "Stop"; }