İleti kilitlenmeleri

Başka bir iş parçacığına ileti göndermek için SendMessage işlevini çağırır bir iplik iletisini alır pencere yordamı döndürür kadar yürütme devam edemiyor. Alıcı iş parçacığı denetim iletisi işlenirken belirtiyorsa, dönmek SendMessage için beklediği gönderen iş parçacığı yürütme, devam edemiyor. Bloke olur ise alıcı iplik sonra arayan iş parçacığına ileti gönderir, kilitlenme oluşmasına neden olabilir.

Not alan iş parçacığı denetimi açıkça verim değil ki; Aşağıdaki işlevlerini çağıran bir iplik denetim örtük olarak vermeye neden olabilir.

İletişim kutusu
DialogBoxIndirect
DialogBoxIndirectParam
DialogBoxParam
GetMessage
MessageBox
PeekMessage

Olası kilitlenmeleri önlemek için SendNotifyMessage veya SendMessageTimeout işlevleri kullanarak düşünün. Aksi takdirde, bir pencere yordamı InSendMessage işlevini çağırarak o aldı bir ileti başka bir iş parçacığı tarafından gönderilmiş olup olmadığını belirleyebilirsiniz. İşlevlerini yukarıdaki listeden bir ileti işlenirken çağırmadan önce pencere yordamı önce InSendMessageçağırmalısınız. Bu fonksiyon true dönerse, pencere yordamı önce denetim verim iş parçacığı neden olan herhangi bir fonksiyon ReplyMessage işlevi çağırmalıdır.

Index