В F# кто качает очередь сообщений?

В F#, если я делаю что-то вроде let form = new Form(Text = "MyForm") и запускаю ее в FSI, форма будет нормально отображаться и обновляться, и даже получать сообщения. Однако, кто качает очередь сообщений? Здесь нет приложения. Позвоните сюда. Я немного запутался.

2 ответа

Решение

Как говорит ildjarn, F# Interactive реализует свой собственный цикл сообщений. Интересно, что цикл сообщений не жестко закодирован в F# Interactive, так что вы можете изменить его. Это очень полезно, потому что по умолчанию основано на Windows Forms, но есть и другие структуры GUI, которые вы можете использовать.

Для этого вам необходимо реализовать IEventLoop интерфейс, а затем назначьте свой экземпляр fsi.EventLoop имущество. Для получения дополнительной информации см.:

По этой причине у FSI есть свой собственный насос сообщений.

Другие вопросы по тегам