我有一個應用程序使用三個輔助線程從數據庫中讀取(3個不同的表,總共約160,000行),從這些行創建對象,然後將對象添加到兩個列表中的一個取決於創建的對象類型。輔助線程通過SendMessage調用將對象添加到列表中,以便主線程是添加到/從列表中刪除的唯一對象。SendMessage - 奇怪的返回值
奇怪的是,SendMessage並不總是成功,我會經常得到這兩個錯誤ERROR_ALREADY_EXISTS(183)和ERROR_TRUSTED_DOMAIN_FAILURE(1788)。 SendMessage調用的函數只是將一個對象添加到列表中,並且此函數始終返回成功(0)。沒有創建文件(如ERROR_ALREADY_EXISTS似乎建議),並且沒有網絡調用,所以我不知道爲什麼我收到ERROR_TRUSTED_DOMAIN_FAILURE錯誤。
關於什麼可能導致這些錯誤或任何方式來調試這些錯誤的任何想法?
作爲一個說明,在它是SendMessage之前,我使用PostMessage並且會得到大量的ERROR_NOT_ENOUGH_QUOTA錯誤; SendMessage使公用事業工作更好。
如果我做PostMessage,我仍然可以使用GetLastError()嗎?我喜歡線程安全的數組方法,謝謝。 – riqitang 2015-03-31 15:49:31
@HansPassant你是什麼意思?它說,我仍然處理「非排隊傳入消息」(是其他SendMessage()?)的部分? – andlabs 2015-03-31 16:02:25
這隻適用於工作線程創建自己的窗口並具有消息隊列的情況。這裏不太可能適用。 – 2015-03-31 16:20:19