2014-11-27 28 views
9

Windows İleti Pompası hakkında fazla bir şey bilmiyorum ama sanırım olaylar Mesaj Pompası kullanılarak tetikleniyor. Benim Web tarayıcısı denetimi bazı web sitelerine gittiğinde ben WebBrowser_Document_Completed() içinde gerek var sonraWindows İletileri Temizleme İletisi

1), O, Belge Tamamlama farklı olayları yaratan, ben tüm diğer Belge completion.How görmezden istiyorum bunu yapabilir miyim? i MessageBox gösterirse

2)() Document_Completed (...) içinde, O, birden fazla mesaj kutusunu gösterir ben onu hata ayıklama zaman paralel threads.but üzerinde çalıştığını gösterir i Diğer iki iş parçacığı oluşturulduğunda her zaman ana iş parçacığı üzerinde çalışır olduğunu bulmak?

3) Aynı zamanda, kapatmaya bastığımda, pencereyi kapatır ancak işlem hala arka planda çalışıyor, ben hala hata ayıklama yaparken diğer iki iş parçacığı görüyorum başka bir iş parçacığı kullanmıyorum. Çok teşekkürler.

+0

En kısa sürede ilk olsun MSDN sitesinde bu oldukça iyi bir örnek vardır Etkinlik, etkinliği iptal edebilir veya etkinliği görmezden gelmek için bir bayrak kullanabilir misiniz? Btw Birden fazla iş parçacığı olduğu sonucuna nasıl ulaştınız? –

+0

@SriramSakthivel Eğer Diyalog Sonucu geri dönmezse program ilerlemez, eğer aynı iş parçacığı üzerinde çalışıyorsa, o zaman nasıl birden fazla Mesaj kutusu simultane bir şekilde gösterilir, Nasıl sonuçlandırdım – Charlie

+0

Reentracy buna neden olabilir, bu yüzden teknik olarak tek iplik bunu yapabilir. Gerçekten onlar farklı iş parçacıkları olduğunu doğrulamak için , ileti kutusunda 'Thread.CurrentThread.ManagedThreadId' görüntüleyin. –

cevap

0

Bunu yapmanın en doğrudan yolu, WndProc() yöntemini geçersiz kılarak denetiminize iletilen iletileri engellemek ve değerlendirmek olacaktır. Biraz hata ayıklayıcı gözlemi ile hedef olayınıza karşılık gelen wm_message sabitini tanımlayabilir ve ardından yürütme akışını buna göre değiştirebilirsiniz. https://msdn.microsoft.com/en-us/library/system.windows.forms.control.wndproc%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

sen/görerek, referans aradığınız mesaj (lar) ın bir fikir edinmek için: http://www.pinvoke.net/default.aspx/Constants/WM.html