Size: a a a

2020 March 26

IC

Ilya Chernoudov in pro.net
Ayrat Hudaygulov
По умолчанию всё стартуется на пуле, контекст свича там не будет, твой тред пойдёт дальше другие асинки выполнять из очереди своей.
Контекст свич в фшарпе тоже явный

async {
 …
 do! Async.SwitchToContext someContext
 …
}
Погоди, там встроенная акторная модель что ли?
источник

V

Vyacheslav in pro.net
Vladimir Shchur
кстати, подумал что не обязательно запрещать, просто тип результата не известен, например ничто не мешает такую функцию написать
? (List<?> l) => l[0]
Что мешает написать object f(List<object> l) => l[0];

Меня больше интересует, почему нельзя List<string> скастить к List<object>? Потому что параметр дженерика не ограничен where T: class?
источник

AH

Ayrat Hudaygulov in pro.net
Ilya Chernoudov
Погоди, там встроенная акторная модель что ли?
да, но это несвязано
источник

AH

Ayrat Hudaygulov in pro.net
Ilya Chernoudov
Так, а что будет делать поток пула когда будет происходить операция чтения с диска?
прочитает, выполнит колбек, попиздует делать свою очередь дальше
источник

IC

Ilya Chernoudov in pro.net
Ayrat Hudaygulov
да, но это несвязано
Просто я не вижу отличий от c# в режиме start
источник

AH

Ayrat Hudaygulov in pro.net
к слову, он читать не будет. читать будет хард
источник

AH

Ayrat Hudaygulov in pro.net
а тред выполнит колбек ОС по окончанию чтения
источник

IC

Ilya Chernoudov in pro.net
Ayrat Hudaygulov
прочитает, выполнит колбек, попиздует делать свою очередь дальше
Дак он освобождается на время чтения?
источник

IC

Ilya Chernoudov in pro.net
Или нет?
источник

IC

Ilya Chernoudov in pro.net
То есть выполняется что то другое?
источник

AH

Ayrat Hudaygulov in pro.net
Ilya Chernoudov
Дак он освобождается на время чтения?
не блочится чтением, да. Но он берёт другой колбек из очереди и ебашит
источник

V

Vyacheslav in pro.net
Ayrat Hudaygulov
если у вас есть
await SomeMethod()
и метод МОЖЕТ вернуть без ожидания, то в этом случае лучше возвращать ВалуеТаск
К исключениям это тоже относится?
источник

AH

Ayrat Hudaygulov in pro.net
Vyacheslav
К исключениям это тоже относится?
кстати хз
источник

IC

Ilya Chernoudov in pro.net
Ayrat Hudaygulov
не блочится чтением, да. Но он берёт другой колбек из очереди и ебашит
А, ну как обычно
источник

EZ

Eugene Zakharov in pro.net
Ayrat Hudaygulov
а в сишарпе половина людей не в курсе что асинк метод начинатся на треде вызывающей стороны
всё что до await написано вызывается на треде синхронно, который вызвал асинк, правильно?
источник

AH

Ayrat Hudaygulov in pro.net
Eugene Zakharov
всё что до await написано вызывается на треде синхронно, который вызвал асинк, правильно?
правильно
источник

EZ

Eugene Zakharov in pro.net
Ayrat Hudaygulov
правильно
🤟
источник

IB

Ivan Balanar in pro.net
Ayrat Hudaygulov
а в сишарпе половина людей не в курсе что асинк метод начинатся на треде вызывающей стороны
что именно начинается? первое состояние асинк машины?
источник

IC

Ilya Chernoudov in pro.net
Ilya Chernoudov
Просто я не вижу отличий от c# в режиме start
В таком случае, я не понял, где Профит f# кроме возможности startasync
источник

AH

Ayrat Hudaygulov in pro.net
Ivan Balanar
что именно начинается? первое состояние асинк машины?
async Task Foo() {
 Thread.Sleep(10000000)
}

await Foo() // словим вечный слип
источник