Ejemplo n.º 1
0
        /// <summary>
        /// Runs Selected AddIn new thread
        /// </summary>
        private void RunBackgroundAddIn()
        {
            // Do the work.
            List <int> numbersProcessed = addin.ProcessNumbers(1, 20);

            // update UI on UI thread
            this.Dispatcher.BeginInvoke(DispatcherPriority.Normal,
                                        (ThreadStart) delegate()
            {
                lstNumbers.ItemsSource = numbersProcessed;
                progressBar.Value      = 0;

                // Release the add-in
                addin = null;
            }
                                        );
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Use the selected AddIn
        /// </summary>
        private void btnUseAddin_Click(object sender, RoutedEventArgs e)
        {
            if (lstAddIns.SelectedIndex != -1)
            {
                // get selected addin
                AddInToken token = (AddInToken)lstAddIns.SelectedItem;
                addin = token.Activate <HostView.NumberProcessorHostView>(AddInSecurityLevel.Internet);
                addin.Initialize(automationHost);

                // process addin on new thread
                Thread thread = new Thread(RunBackgroundAddIn);
                thread.Start();
            }
            else
            {
                MessageBox.Show("You need to select an addin first");
            }
        }