/// <summary> /// Submit an invoke request, if currently an invoke is done, this will be put as pending. /// </summary> public bool Invoke(TimeSpan minimumCallInterval, params object[] parameters) { lock (this) { bool lastInvocationTimedOut = LastInvocationTimedOut; if ((_currentExecutionResult != null && _currentExecutionResult.IsCompleted == false) || (_isCallPending && lastInvocationTimedOut == false)) {// Current call in progress, or a call already pending and not time for execution yet. _isCallPending = true; _lastInvocationParameters = parameters; _minimumCallInterval = TimeSpan.FromMilliseconds(Math.Min(minimumCallInterval.TotalMilliseconds, _minimumCallInterval.TotalMilliseconds)); return(false); } _isCallPending = false; _lastInvocationParameters = null; _lastInvocation = DateTime.Now; // Reset the minimum call interval. _minimumCallInterval = TimeSpan.MaxValue; _currentExecutionResult = WinFormsHelper.BeginManagedInvoke(_control, _delegate, parameters); //System.Diagnostics.Trace.WriteLine(_control.Name, _delegate.Method.Name); } return(true); }
/// <summary> /// Invocation safety. /// </summary> /// <param name="activate"></param> public void SetActiveState(bool activate) { if (this.InvokeRequired == false) { if (this.IsHandleCreated == false) { this.CreateControl(); } this.Visible = true; DoActivate(activate); } else { WinFormsHelper.BeginManagedInvoke(this, delegate() { if (this.IsHandleCreated == false) { this.CreateControl(); } DoActivate(activate); }); } }
/// <summary> /// Helper, automates the saving of items of virtual list to a CSV files. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public static void SaveVirtualListItemsToCSV(ListView virtualListViewEx1, RetrieveVirtualItemEventHandler handler) { using (SaveFileDialog dialog = new SaveFileDialog()) { dialog.Title = "Select save file"; dialog.AddExtension = true; dialog.RestoreDirectory = true; dialog.DefaultExt = "csv"; dialog.Filter = "Text file (*.csv)|*.csv"; if (dialog.ShowDialog() != DialogResult.OK) { return; } StringBuilder builder = WinFormsHelper.VirtualListItemsToCSV(virtualListViewEx1, handler); using (FileWriterHelper helper = new FileWriterHelper()) { if (helper.Initialize(dialog.FileName) == false) { MessageBox.Show("Failed to save file."); return; } helper.Write(builder.ToString()); } } }
public void Add(WinFormsHelper.AsyncResultInfo info) { if (_invokeWatchTimer.Enabled) { lock (this) { _invokeResults.Add(info); } } }
/// <summary> /// Constructor. /// </summary> public TracerControl() { InitializeComponent(); _tracer = new Tracer(); listView.VirtualItemsSelectionRangeChanged += new ListViewVirtualItemsSelectionRangeChangedEventHandler(listView_VirtualItemsSelectionRangeChanged); lock (listView) { listView.AdvancedColumnManagementUnsafe.Add(0, new VirtualListViewEx.ColumnManagementInfo() { AutoResizeMode = ColumnHeaderAutoResizeStyle.ColumnContent }); listView.AdvancedColumnManagementUnsafe.Add(1, new VirtualListViewEx.ColumnManagementInfo() { FillWhiteSpace = true }); } // Search items. _searchingMatchStrip = new StringsControlToolStripEx(); _searchingMatchStrip.Label = "Search"; // Data source assigned on tracer assignment. //toolStripFilters.Items.Add(new ToolStripSeparator()); WinFormsHelper.MoveToolStripItems(_searchingMatchStrip, toolStripFilters); // Mark items. _markingMatchStrip = new StringsControlToolStripEx(); _markingMatchStrip.Label = "Mark"; _markingMatchStrip.SetDataSource(this, this.GetType().GetProperty("MarkingMatch")); toolStripFilters.Items.Add(new ToolStripSeparator()); WinFormsHelper.MoveToolStripItems(_markingMatchStrip, toolStripFilters); // View exclude filtering... _viewExcludeStrip = new StringsControlToolStripEx(); _viewExcludeStrip.Label = "Exclude"; WinFormsHelper.MoveToolStripItems(_viewExcludeStrip, toolStripFilters); // Input filtering... ToolStripLabel label = new ToolStripLabel("Filter"); label.ForeColor = SystemColors.GrayText; toolStripFilters.Items.Add(new ToolStripSeparator()); toolStripFilters.Items.Add(label); // Input exlude items. _inputExcludeStrip = new StringsControlToolStripEx(); _inputExcludeStrip.Label = "Exclude"; // Data source assigned on tracer assignment. toolStripFilters.Items.Add(new ToolStripSeparator()); WinFormsHelper.MoveToolStripItems(_inputExcludeStrip, toolStripFilters); }
/// <summary> /// Load state. /// </summary> /// <param name="state"></param> public void LoadState(SerializationInfoEx state) { if (state.ContainsValue("_stringFilter")) { StringTracerFilter stringFilter = state.GetValue <StringTracerFilter>("_stringFilter"); if (_stringFilter != null) { _stringFilter.CopyDataFrom(stringFilter); } } if (state.ContainsValue("_stringInputFilter")) { StringTracerFilter stringInputFilter = state.GetValue <StringTracerFilter>("_stringInputFilter"); if (_stringInputFilter != null) { _stringInputFilter.CopyDataFrom(stringInputFilter); } } WinFormsHelper.DirectOrManagedInvoke(this, UpdateFiltersUI); }
void Variables_VariablesUpdatedEvent(SystemVariables variables) { WinFormsHelper.BeginManagedInvoke(this, UpdateUI); }
/// <summary> /// Possible NON UI thread. /// </summary> void _filter_FilterUpdatedEvent(TracerFilter filter) { WinFormsHelper.BeginManagedInvoke(this, new GeneralHelper.DefaultDelegate(UpdateUI)); }
/// <summary> /// /// </summary> public void UpdateUI() { WinFormsHelper.DirectOrManagedInvoke(this, DoUpdateUI); }
void _itemSink_FilterUpdateEvent(TracerItemSink tracer) { WinFormsHelper.BeginFilteredManagedInvoke(this, DoUpdateUI); }
void _manager_SourceAddedEvent(NewsManager manager, EventSource source) { WinFormsHelper.BeginManagedInvoke(this, UpdateUI); }
void _manager_UpdatingStartedEvent(NewsManager manager) {// Needed for the update status icon. WinFormsHelper.BeginManagedInvoke(this, UpdateUI); }
void _manager_SourceItemsAddedEvent(NewsManager manager, EventSource source, IEnumerable <EventBase> events) { WinFormsHelper.BeginFilteredManagedInvoke(this, TimeSpan.FromSeconds(1), UpdateUI); }
void _manager_UpdatingStartedEvent(NewsManager manager) { WinFormsHelper.BeginManagedInvoke(this, UpdateUI); }