コード例 #1
0
        private void HandleAsyncCompletionTriggered(object sender, CompletionTriggeredEventArgs e)
        {
            var listener = _asynchronousOperationListenerProvider.GetListener(FeatureAttribute.CompletionSet);
            var token    = listener.BeginAsyncOperation(nameof(IAsyncCompletionBroker.CompletionTriggered));

            e.CompletionSession.Dismissed     += ReleaseToken;
            e.CompletionSession.ItemCommitted += ReleaseToken;
            e.CompletionSession.ItemsUpdated  += ReleaseToken;

            return;

            // Local function
            void ReleaseToken(object sender, EventArgs e)
            => Interlocked.Exchange(ref token, null)?.Dispose();
        }
コード例 #2
0
        private void CompletionBroker_CompletionTriggered(object sender, CompletionTriggeredEventArgs eventArgs)
        {
            eventArgs.CompletionSession.ItemCommitted += CompletionSession_ItemCommitted;

            TextView = eventArgs.TextView;
        }