Size: a a a

2021 February 15

A

Alexandr in F# Chat
Ilya Machekhin
Thread требует функцию как аргумент. Член класса туда не пропихнуть.
Может, потому что watcher - это Async<unit>, а в конструктор Thread надо другое? ... Вроде очевидно, или это я тупой?
источник

R

Roman in F# Chat
Ilya Machekhin
Нижайше, нижайше прошу меня простить. Код выше компилится.
А вот аналогичный в F# не компилится.
Так покажи весь код
источник

AH

Ayrat Hudaygulov in F# Chat
Ilya Machekhin
Нижайше, нижайше прошу меня простить. Код выше компилится.
А вот аналогичный в F# не компилится.
Смотри, асинк фшарпа возвращает не таск, а Async
источник

AH

Ayrat Hudaygulov in F# Chat
У тебя там типы не сходятся
источник

AH

Ayrat Hudaygulov in F# Chat
Ну и конструктор треда требует вполне конкретные 2 перегрузки
источник

IM

Ilya Machekhin in F# Chat
Roman
Так покажи весь код
источник

IM

Ilya Machekhin in F# Chat
Файл, если хотите запустить.
источник

AH

Ayrat Hudaygulov in F# Chat
ThreadStart это поди делегат вида экшон
источник

AH

Ayrat Hudaygulov in F# Chat
Вообще запускать тред с асинком внутри это как-то странно. Мы запускаем тред, который тут же отдаёт работу на тредпул
источник

AH

Ayrat Hudaygulov in F# Chat
Мне кажется тут кто-то лишний
источник

IM

Ilya Machekhin in F# Chat
Да, асинк я оставил от прошлых попыток сделать этот код неблокирующим.
источник

AH

Ayrat Hudaygulov in F# Chat
В коде на сишарпе же не так
источник

AH

Ayrat Hudaygulov in F# Chat
Ilya Machekhin
Да, асинк я оставил от прошлых попыток сделать этот код неблокирующим.
Ты уже тред создал!
источник

AH

Ayrat Hudaygulov in F# Chat
Как ты хочешь сделать его неблокирующим и зачем если ты сделал тред специальный
источник

IM

Ilya Machekhin in F# Chat
В C# я делаю экземпляр класса хендлер и этот хендлер следит за объектом PowershellRunspace'а.
Я просто делаю новый экземпляр класса и вызываю метод Watch()
И в шарпе из коробки этот код работает в неблокирующем виде.
источник

SB

S B in F# Chat
Ayrat Hudaygulov
Как ты хочешь сделать его неблокирующим и зачем если ты сделал тред специальный
я так понял, что он не хочет, чтобы тред висел в ожидании, а-ка локлесс
источник

AH

Ayrat Hudaygulov in F# Chat
S B
я так понял, что он не хочет, чтобы тред висел в ожидании, а-ка локлесс
Но... Никто его тред не сможет переиспользовать. Он же его явно создал новый, а не из тредпула взял
источник

AH

Ayrat Hudaygulov in F# Chat
То есть какой смысл его не блокировать, если он не будет работать вне блока
источник

SB

S B in F# Chat
Ayrat Hudaygulov
Но... Никто его тред не сможет переиспользовать. Он же его явно создал новый, а не из тредпула взял
я задумку сам не до конца понимаю
источник

AH

Ayrat Hudaygulov in F# Chat
Ilya Machekhin
В C# я делаю экземпляр класса хендлер и этот хендлер следит за объектом PowershellRunspace'а.
Я просто делаю новый экземпляр класса и вызываю метод Watch()
И в шарпе из коробки этот код работает в неблокирующем виде.
А ты можешь повторить то же самое на фшарпе? Ну точнее я точно знаю что можешь, но мне надо увидеть что у тебя не получается.
В фшарпе надо явно делегаты типизировать, в сишарпе имплисит кастами все делается
источник