У меня есть приложение winform, где я слушаю событие Application_ThreadException.Когда это будет сгенерировано, я сделаю простой вызов в службу (которая запишет исключение), и когда мы вернемся к клиенту, будет использован MessageBox.Show.Например:
this.GetMyClientService.LogException(new MyApp.DataContracts.FaultContracts.Generellt.GeneralFault(exceptionContainer));
System.Windows.Forms.MessageBox.Show("test");
Проблема в том, что, пока я выполняю службу, вызываю MessageBox.Show не будет вызывать форму заявки и затем помещать себя поверх нее?Вместо этого окно сообщений будет отображаться отдельно.Если я щелкну значок приложения в трее, появится окно сообщения, а не форма?
Если я вместо этого удалю строку вызова службы (GetMyClientService.Log ...), то в окне сообщения появится окносформировать, а затем поставить себя поверх него.Невозможно просто вызвать форму (это то, что мне нужно).
Почему это так?Я, кажется, тот же поток, который выполняет вызов службы, который также запускает метод MessageBox.Show?
BestRegards
Edit1:
Если я изменю его на это:
ThreadPool.QueueUserWorkItem(new WaitCallback(LogException1), exceptionContainer);
//this.GetMyClientService.LogException(new MyApp.DataContracts.FaultContracts.Generellt.GeneralFault(exceptionContainer));
System.Windows.Forms.MessageBox.Show("test");
Так же будет работать.Но как только основной поток пользовательского интерфейса вызывает сервис, MessageBox отключается?