2012-02-13 96 views
1

AfxMessageBox函數是否線程安全?我看到AfxMessageBox後面的MFC代碼調用諸如AfxGetMainWnd() - > GetSafeHwnd()和CCmdTarget :: GetRoundingFrame _() - > GetSafeHwnd(),我想知道它的線程安全性。線程安全和AfxMessageBox

如果我有多個GUI線程,是否可以從其中任何一個調用AfxMessageBox?

+0

那些GUI線程是否有自己的消息循環?或者你有一個GUI線程(通常是主線程)和工作線程?如果從工作線程調用'AfxMessageBox',你可能會遇到問題。 – 2012-02-14 00:09:15

+0

它與線程安全沒有多大關係,失敗模式是彈出另一個窗口後面的消息框。對用戶完全不可見,而不是模態。 – 2012-02-14 01:17:56

回答

1

是的,它是線程安全的。從MSDN

如果AfxGetMainWnd從應用程序的主線程中調用,它根據上述規則返回應用程序的主窗口。如果該函數是從應用程序中的輔助線程調用的,則該函數返回與進行調用的線程關聯的主窗口。