Size: a a a

2021 January 29

OM

Oleg Morozov in pro.net
и проблема именно в конструкциях c checked
источник

E

EgorBo in pro.net
Лучше переписать на шарп уже джит тогдп
источник

E

EgorBo in pro.net
Это имеет 100х больше смысла
источник

VK

Vladislav Khapin in pro.net
EgorBo
Лучше переписать на шарп уже джит тогдп
не указал какой шарп для интриги?
источник

E

EgorBo in pro.net
Vladislav Khapin
не указал какой шарп для интриги?
)) тот который быстрее по перфу
источник

OM

Oleg Morozov in pro.net
EgorBo
)) тот который быстрее по перфу
опять ты на больное давишь
источник

RI

Roman Ivasyk in pro.net
Всем привет. Коротко - как кансельнуть таску, поток которой заблокирован каким-то синхронным методом? Перепробывал пару простых вариантов, но пока безрезультатно. Скорее всего нужно будет использовать асинхронную версию этой блокирующей операции и добавить токен отмены, но это кучу кода менять надо - вот и спрашиваю можно ли как-то обойтись
Упрощенный псевдокод снизу.

await Task.Run(()=>
{
     thread staying here —> some thread blocking operation (UDPClient.Receive() or some pulling)

    deserializations and calculations

     working with received data
});
источник

A

Aloraman in pro.net
источник

AH

Ayrat Hudaygulov in pro.net
Roman Ivasyk
Всем привет. Коротко - как кансельнуть таску, поток которой заблокирован каким-то синхронным методом? Перепробывал пару простых вариантов, но пока безрезультатно. Скорее всего нужно будет использовать асинхронную версию этой блокирующей операции и добавить токен отмены, но это кучу кода менять надо - вот и спрашиваю можно ли как-то обойтись
Упрощенный псевдокод снизу.

await Task.Run(()=>
{
     thread staying here —> some thread blocking operation (UDPClient.Receive() or some pulling)

    deserializations and calculations

     working with received data
});
только кооперативная отмена
источник

AH

Ayrat Hudaygulov in pro.net
никаких вытеснений тасков из шедулера нет
источник

IC

Ilya Chernoudov in pro.net
@EgorBo у нас тут сломанный телефон, ты можешь сказать, в этом примере  

         IL_000a: ldloca.s 0
           IL_000c: constrained. C/A
           IL_0012: callvirt instance void [System.Private.CoreLib]System.IDisposable::Dispose()


может приводить к боксингу?
источник

IC

Ilya Chernoudov in pro.net
Roman Ivasyk
Всем привет. Коротко - как кансельнуть таску, поток которой заблокирован каким-то синхронным методом? Перепробывал пару простых вариантов, но пока безрезультатно. Скорее всего нужно будет использовать асинхронную версию этой блокирующей операции и добавить токен отмены, но это кучу кода менять надо - вот и спрашиваю можно ли как-то обойтись
Упрощенный псевдокод снизу.

await Task.Run(()=>
{
     thread staying here —> some thread blocking operation (UDPClient.Receive() or some pulling)

    deserializations and calculations

     working with received data
});
у тебя фул дотнет? можно вместо Task.Run сделать Thread.Start и потом Abort
источник

IC

Ilya Chernoudov in pro.net
но это плохой вариант
источник

AV

Aleksey Vyushkov in pro.net
CancellationToken я бы предпочёл
источник

RI

Roman Ivasyk in pro.net
Ilya Chernoudov
у тебя фул дотнет? можно вместо Task.Run сделать Thread.Start и потом Abort
Можно, но хотелось бы таск и трид из пула, чтобы не создавать/убивать триды каждый раз.
Перепишу всё, заменю синхронную операцию на асинхронную версию и прокину токен через пару методов к ней. Посмотрю что получится
источник

IC

Ilya Chernoudov in pro.net
Roman Ivasyk
Можно, но хотелось бы таск и трид из пула, чтобы не создавать/убивать триды каждый раз.
Перепишу всё, заменю синхронную операцию на асинхронную версию и прокину токен через пару методов к ней. Посмотрю что получится
это будет лучшим вариантом
источник

RI

Roman Ivasyk in pro.net
Ilya Chernoudov
это будет лучшим вариантом
если не считать передачу этого токена через пару методов)
источник

E

EgorBo in pro.net
Ilya Chernoudov
@EgorBo у нас тут сломанный телефон, ты можешь сказать, в этом примере  

         IL_000a: ldloca.s 0
           IL_000c: constrained. C/A
           IL_0012: callvirt instance void [System.Private.CoreLib]System.IDisposable::Dispose()


может приводить к боксингу?
callvirt же
источник

IC

Ilya Chernoudov in pro.net
EgorBo
callvirt же
с constrained
источник

IC

Ilya Chernoudov in pro.net
box то нету
источник