2010-09-09 4 views
2

Я разрабатываю прогноз надстройку в C#, Heres мой запуск:Перспективы Аддин развертывания Тема

private void ThisAddIn_Startup(object sender, System.EventArgs e) 
    { 
     //adds the new issueTopMenu 
     //Search the menu and delete if found 
     RemoveMenubar(); 

     //adds the panel 
     AddPanelToExplorer(); 

     //Method to create new menu 
     AddMenuBar(); 
    } 

Как я могу это сделать, чтобы запустить на волоске, потому что доступ к веб-сервиса, чтобы получить какие-то данные, и когда внешний вид начинает замораживаться, пока он не получит данные, и я хочу, чтобы это время замораживания.

ответ

4

Модель объекта Outlook использует один поток. поэтому, даже если у вас есть несколько потоков в вашем добавлении, если этот поток выполняет код, который использует объектную модель Outlook, он будет работать как однопоточное приложение. Вы можете отделить код, который не использует объектную модель Outlook, например, доступ к веб-службе и извлечение данных и выполнение этого кода в отдельном потоке. таким образом вы можете использовать многопоточность.

+0

Хотя Outlook * будет * получать доступ к OOM обратно по основному потоку, я нашел, что лучше всего использовать * OOM * только из основного потока. Это, похоже, помогает смягчить «случайные» проблемы. Как указывалось, работа, не касающаяся OOM (или Winforms, etc ;-), может работать нормально в фоновом потоке. – 2011-05-12 23:07:08

Смежные вопросы