Здравствуйте.
Вот имеется на .net 4.0 метод типа ImportFileAsync:
Task<Tuple<bool, string>> ImportFileAsync(string file)
{
...
};
На сколько будет уместно и правильно делать синхронную версию сл. образом:
Tuple<bool, string> ImportFile(string file)
{
var temp = ImportFileAsync(file);
return temp.Result;
}
Думается, что это не самый правильный вариант с точки зрения поточной модели, т.к. разумно полагать, что никаких новых потоков создаваться не должно, а под капотом именно это и происходит. Ну даже если новый поток создан не будет (будет взят из пула), все равно ведь мы ожидаем что вызываемый метод будет работать в потоке вызывающего, что вообще говоря не так.
У меня дилемма: оставить как выше, или рефакторить асинхронный метод в нормальный синхронный вариант.