Я хочу, чтобы эта функция возвращает результат:Возврат данных с помощью Task
public Task<Item_DataColl> invoke_command_READ(string UCPTName)
{
Item_DataColl res = await Task.FromResult(thread_command_READ_result(UCPTName));
return res;
}
Я не понимаю, как Task
работает и как я могу использовать его, чтобы сделать нить с результатом. Вы можете мне это объяснить?
Краткая версия: вместо 'Task.FromResult (...)', используйте 'Task.Run (() => thread_command_READ_result (UCPTName));'. Обратите внимание, что вам нужно добавить 'async' в ваше объявление' invoke_command_Read() '' '', если вы хотите использовать 'await' в методе. Длинная версия: вам нужно изучить документацию и другие ссылки, которые объясняют, как вы можете использовать параллельную библиотеку задач для выполнения операций в фоновом режиме (которые по умолчанию будут использовать пул потоков для выполнения этих операций в отдельном потоке). –
Если вы дойдете до того момента, когда у вас возник вопрос о том, что _hasn't_ уже был дан более частым раз в Stack Overflow уже и/или который уже надлежащим образом рассмотрен в документации, отправьте новый вопрос, включая хороший [ mcve], и подробное объяснение того, что конкретно возникает у вас, возникают проблемы с пониманием или выяснением. –
Да, я забыл async в объявлении, я удалил его перед публикацией этого сообщения, не знаю почему. Я долгое время работаю над документацией, и если я спрашиваю о стеке, это потому, что я не могу выполнить даже простой возврат задачи. Кстати, я не думаю, что редактирование для добавления или удаления некоторых пробелов - это хорошее редактирование ... –