Выполнить некоторый код в основном потоке из рабочего потока - PullRequest
1 голос
/ 14 января 2011

Мне нужно дать сигнал главному потоку запустить некоторый код из одного рабочего потока.

Этот код должен выполняться в главном потоке из-за какой-то проблемы с COM (запуск его в потоке просто не удался).

Я начинал реализовывать его с помощью сообщений и событий (мне нужно дождаться выполнения кода, прежде чем идти вперед), когда я вспомнил, что есть какой-то очень простой и прямой способ сделать это в Java и SWT)

  display.syncExec (new Runnable () {
  public void run () {
     if (!myWindow.isDisposed())
        myWindow.redraw ();
  }

Что-нибудь похожее для MFC и Windows в целом?

1 Ответ

1 голос
/ 14 января 2011

Вы можете использовать PostThreadMessage Функция WinAPI для отправки WM_USER сообщения в основной поток. Затем вы можете обработать WM_USER в главном потоке и выполнить некоторые необходимые действия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...