Мое приложение VCL регистрирует два сообщения в WinMain
unsigned int WM_CAMERA_STOPPED_RECORDING;
unsigned int WM_CAMERA_STARTED_RECORDING;
int WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR lpCmdLine, int)
{...
WM_CAMERA_STOPPED_RECORDING = RegisterWindowMessage(L"CameraStoppedRecording");
WM_CAMERA_STARTED_RECORDING = RegisterWindowMessage(L"CameraStartedRecording");
Тема публикует сообщение, когда это необходимо:
int ret = PostMessage(HWND_BROADCAST, WM_CAMERA_STARTED_RECORDING, 0, 0);
Моя mainForm имеет перегруженную WindPRo c:
void __fastcall TMainForm::WndProc(TMessage &Message)
{
if(Message.Msg == WM_CAMERA_STOPPED_RECORDING && WM_CAMERA_STOPPED_RECORDING > 0)
{
UIFrame->FocusZoneFrame->onCameraFinishedRecording();
}
else if(Message.Msg == WM_CAMERA_STARTED_RECORDING && WM_CAMERA_STARTED_RECORDING > 0)
{
UIFrame->FocusZoneFrame->onCameraStartedRecording();
}
TForm::WndProc(Message);
}
Вопрос в том, есть ли разница в использовании функции PostMessage в потоке против основного потока?
Я спрашиваю, потому что я получаю некоторое нестабильное поведение в приложении, где основной поток пользовательского интерфейса где-то блокируется, и задаюсь вопросом, может ли это быть связано с тем, как PostMessage используется выше.