У меня есть приложение Windows, построенное на .net-технологии. В моем приложении я получаю много сообщений из разных потоков. Как только я получаю сообщение, мне нужно вызвать функцию, которая должна быть потокобезопасной. Я использовалОчередь сообщений против блокировки потоков
lock (lockThis)
{
TSFunction(message);
}
Теперь некоторые один рекомендовал мне использовать очереди сообщений вместо этого. Я совсем не знаком с этим подходом, но я хочу выбрать лучший. Должен ли я переключиться в очередь сообщений? Если да, то может кто-нибудь, пожалуйста, укажите мне хороший учебник?
Вызов вашей функции внутри 'lock' не делает функцию потоком безопасной. Также очередь сообщений не делает ничего по существу безопасным потоком. Единственное, что можно надежно сделать потокобезопасным, это * контент * метода, а не так, как вы его называете. В любом случае, попросив StackOverflow, следует ли вам переключаться, предполагает слишком много знаний вашей системы от нашего имени (мы не знаем, каковы ваши более широкие требования!), А также во многих случаях является довольно субъективным вопросом. –