message-pump

    2熱度

    3回答

    處理計算繁重任務的常用VB方法是將其放入後臺工作線程中,而主線程則繼續處理UI。 說不管出於什麼原因,我需要以相反的方式做到這一點:主線程做了咕嚕的工作,更新了UI的背景。 這是我到目前爲止。唯一的問題是,當UI窗口(Form1)被重繪時,你不能與它交互,甚至不會移動或調整它的大小(鼠標光標變成沙漏而不會點擊)。 Public Class ProgressDisplay Private trd

    3熱度

    1回答

    我似乎無法在任何地方找到答案。我不確定我是否知道如何說出它。 不要註定消息控件上的表單處理中彼此平行? 我一直的印象是,我們有每個線程的公寓一個消息泵下,和一個泵會養活連接到該線程整個GUI。所以,如果你在一個控件上掛接了wndproc並凍結了線程(Thread.Sleep()),整個窗體就會凍結? 如果是這樣,會出現this question通過當在子控制的特定消息到達睡覺來證明,相鄰的控制處理

    0熱度

    1回答

    我有一個應用程序從API異步接收事件,並可以在此API上同步調用方法。 爲了線程安全的目的,我需要每個同步函數和應用程序中的每個事件處理程序都被鎖定。 然而,調用API方法同步可能導致的API,以提高在不同的線程事件,等待他們返回之前進行處理。 因此,這可能會導致死鎖的API將等待要處理的事件繼續,但在我的課同步對象將由兩個不同的線程被擊中,程序會掛起。 我的當前的想法是,而不是鎖定的事件處理程序

    1熱度

    3回答

    如何在等待COM事件完成時阻止UI線程。我訂閱更新事件的COM事件已完成信號。 MyRData.OnUpdate += OnUpdate; 我沒有自己的COM代碼,無法對其進行更改。 我試過AutoResetEvent,但阻止UI線程,我不接受來自COM的更新。

    1熱度

    1回答

    我正要將child window附加到外部應用程序。子窗口將是一個無模式的對話框。由於我不擁有外部應用程序的源代碼(實際上是Microsoft FSX),我不知道如何掛鉤到消息循環或父窗口本身的回調LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM)。 我的附加應用程序運行在它自己的進程中,所以我需要編寫自己的消息循環,還是我的回調會由父消息泵調

    0熱度

    1回答

    我指的是msdn文章「在MFC對話框中託管Windows窗體用戶控件」[0123](http://msdn.microsoft.com/en-us/library/94t3ebxz.aspx),以便重用Windows在MFC遺留應用程序中形成用戶控件。使用花哨的DDX_ManagedControl工具,我可以看到嵌入到對話框中的控件(MyPanel類),甚至可以使用100%的製表符。 然後我繼續讓

    0熱度

    1回答

    這涉及到這樣一個問題: How to create custom message pump? 我基本上需要相同的消息泵,但它也需要能夠支持輸入參數。上述問題的答案僅支持Action()委託,它們不接受參數。我希望能夠將參數傳遞給我的操作。這裏是無參數版本: public class MessagePump { private BlockingCollection<Action> act

    4熱度

    3回答

    我們有一個WPF繁忙窗口指示器。它在主線上使用window.ShowDialog()顯示。響應Loaded事件時,將執行一個操作,並關閉該窗口,以便應用程序繼續其工作。 window.ShowDialog()似乎不時地(很少)掛起而沒有顯示對話框,並且Loaded事件未被觸發,因此應用程序掛起。相關的代碼是下列之一: private void BusyIndicatorAsyncCall(stri

    0熱度

    1回答

    我一直在爲遊戲製作Window類,並且在消息泵方面遇到了問題。 我將事件從Windows提供的消息隊列中取出併發送到它們所屬的窗口。這是翻譯和分派的功能。 從我記得的Win32編程中,翻譯和分派消息調用指定的WindowProc與參數的消息內容。因此,這裏是我指定的WindowProc ... currWin,currhwnd和WINMAP被定義爲局部變量Window.cpp,在頂部... 不管怎

    1熱度

    1回答

    當我運行我的程序(下面的代碼)並通過USB電纜插入硬盤驅動器時,WindowProcedure被稱爲WM_DEVICECHANGE消息,用於設備更改事件類型DBT_DEVICEARRIVAL。 但是,GetMessage不返回。 的documentation for GetMessage說GetMessage 檢索從調用線程的消息隊列中的消息。 因此,聽起來好像線程的消息隊列中沒有消息。 爲什麼我