Проблема частично исправлена: кажется, что использование потоков предотвращает регулярное потребление сообщений, даже если это неблокирующий вызов.
Мое обходное решение состояло в том, чтобы вернуть управление в окно, чтобы оно могло потреблять сообщений:
// … thread stuff
for (auto nI = 0; nI < nCount; nI++)
{
// Heavy computing
nSleepStep = 5;
nSleepTime = 200;
while (nSleepTime > nSleepStep)
{
while(PeekMessage(&msg, hWnd, 0, 0, PM_REMOVE))
{
switch( msg.message )
{
case WM_TIMER :
case WM_PAINT :
TranslateMessage( &msg );
DispatchMessage( &msg );
break;
}
}
std::this_thread::sleep_for(std::chrono::milliseconds(nSleepStep));
nSleepTime -= nSleepStep;
}
}
Я решил свою проблему благодаря этому ответу https://stackoverflow.com/a/10650452/2010246
A
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(new MappingJackson2HttpMessageConverter());
}
Не будет работать только таким образом, даже если я переопределяю этот метод в AbstractDispatcherServletInitializer
Вместо этого мне пришлось создать отдельный класс для конфигурации MVC
package configuration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import java.util.List;
@Configuration
public class Mvc extends WebMvcConfigurationSupport {
protected void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(converter());
addDefaultHttpMessageConverters(converters);
}
@Bean
MappingJackson2HttpMessageConverter converter() {
return new MappingJackson2HttpMessageConverter();
}
}
Теперь он загружается правильно, и я могу просто вернуть класс, как я хотел
Я думаю, основная проблема заключалась в том, что не было класса, который был бы аннотирован как @Configuration
и расширял бы WebMvcConfigurationSupport
родителя