Синхронные методы на основе асинхронных.
От: Sharov Россия  
Дата: 15.01.16 13:47
Оценка:
Здравствуйте.

Вот имеется на .net 4.0 метод типа ImportFileAsync:
Task<Tuple<bool, string>> ImportFileAsync(string file)
{
...
};


На сколько будет уместно и правильно делать синхронную версию сл. образом:
Tuple<bool, string> ImportFile(string file)
{
   var temp = ImportFileAsync(file);
   return temp.Result;
}


Думается, что это не самый правильный вариант с точки зрения поточной модели, т.к. разумно полагать, что никаких новых потоков создаваться не должно, а под капотом именно это и происходит. Ну даже если новый поток создан не будет (будет взят из пула), все равно ведь мы ожидаем что вызываемый метод будет работать в потоке вызывающего, что вообще говоря не так.

У меня дилемма: оставить как выше, или рефакторить асинхронный метод в нормальный синхронный вариант.
Кодом людям нужно помогать!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.