Я знаю, что есть много вопросов о «вызывающей нити ...», но так, как я и пытался, не решал мою проблему, и я знаю, что мне нужно включить вызов потока, но я не знаю, где.Открыть новое окно «Вызывающая нить должна быть STA»
Итак, я создаю mailItem и добавляю обработчик отправки и закрытия, как показано ниже, если почтовый элемент закрыт. Я ничего не делаю, если отправляется почтовый элемент. Мне нужно открыть окно пользователю для регистрации своего рода история.
Ошибка возникает, когда я пытаюсь создать окно для регистрации истории.
Шаг 1:
((Microsoft.Office.Interop.Outlook.ItemEvents_10_Event)mailItem).Send += new Microsoft.Office.Interop.Outlook.ItemEvents_10_SendEventHandler(EmailEnviado);
((Microsoft.Office.Interop.Outlook.ItemEvents_10_Event)mailItem).Close += new Microsoft.Office.Interop.Outlook.ItemEvents_10_CloseEventHandler(EmailCancelado);
Шаг 2
mailItem.Display();
Шаг 3
private void EmailEnviado(ref bool
{
List<int> listaPendenciaId = new List<int>();
foreach (Pendencia pendencia in this.listaPendencia)
{
if (pendencia.IsSelecionado)
{
listaPendenciaId.Add(pendencia.
System.Windows.Window historicoEmailCadastro = new System.Windows.Window
{
Title = "Cadastro de Histórico de Email",
Content = new HistoricoEmailCadastro(listaPendenciaId),
Width = 249,
Height = 213,
ResizeMode = ResizeMode.NoResize
};
historicoEmailCadastro.ShowDialog();
}
Заранее спасибо.
Microsoft Office API, являются COM на основе и COM-объекты должны быть доступны в том же потоке, что они были созданы. –
Хм, что-то не так с тем, как вы инициализируете объект приложения Outlook. Как создание его на рабочем потоке. Мы не можем видеть этот код, но вы должны его исправить. –