Outlook 2010 eklentim (VSTO kullanarak), posta gönderildiğinde farklı bir iş parçacığında bazı web hizmeti çağrılarını yapar. Web servis çağrısının sonucunu görüntüleyen kük olmayan bir pop-up bildirimi (Skype/Yahoo/Windows Live Messenger'ınki gibi) görüntülemek istiyorum.Outlook Eklentisi için pop-up bildirimi (arka plan iş parçacığı sorusundan Form.Show() çağrısı)
Notification Window project gereksinimlerime göre özelleştirmeye çalışıyordum. Aynı yöntem notifier.DisplayNotification ("Test") çağrıldığında, Ancak
private void btnOk_Click(object sender, EventArgs e)
{
PopupNotifier notifier = new PopupNotifier();
notifier.DisplayNotification("Test");
}
: my eklenti aşağıdaki kodu kullanarak bir formun bir tıklama etkinlik işleyicisinden denilen zaman iyi iş gibi görünüyor Web hizmeti çağrısı yapan arka plan iş parçacığından, notifier askıda kalıyor; Onun formu ekranda görüntülenir, ancak hiçbir metin, renk veya animasyon çalışmıyor gibi görünüyor. Outlook kapanana kadar sadece orada oturur.
Bazı aramalar yaptım ve bildiricinin formunu görüntülemek için ShowDialog() yerine Show() yöntemini kullandığı için bunun olabileceğini fark ettim. Pop-up bildirimi için kalıcı bir iletişim kutusu istemediğimden, yöntemi ShowDialog() yöntemine değiştiremiyorum.
Diğer makalelere göre, aynı zamanda backgroundWorkers, delegates, MethodInvoker vb. Yöntemlerini kullanarak denemeyi denedim, ancak istenen sonucu alamadım. Bununla birlikte, yukarıdakileri denerken, aynı şeyin yalnızca açılır bildirici için değil, basit bir formda gerçekleştiğini fark ettim. Ben arka plan iş parçacığı içinde oluşturmak ve Show() yöntemini çağırırsanız, bu yalnızca takılır, oysa aynı durumda ShowDialog() iyi çalışıyor gibi görünüyor.
Bunu nasıl düzeltebileceğime dair bir fikre büyük bir mutluluk duyacağız.