Size: a a a

2021 March 20

A

Anatoly in F# Chat
Pavel
Могу ошибаться, но вроде в аналогичной ситуации в таске процесс не крэшится. Возможно в системный лог инфа об исключении пусть запишется
Должен падать
источник

P

Pavel in F# Chat
Anatoly
Должен падать
Если в таске возникает необработанное исключение, процесс не крэшится. Почему такая разница?
источник

AH

Ayrat Hudaygulov in F# Chat
Pavel
Если в таске возникает необработанное исключение, процесс не крэшится. Почему такая разница?
Если ты таску ожидаешь или выполняешь с основного потока - крашится
источник

P

Pavel in F# Chat
Ayrat Hudaygulov
Если ты таску ожидаешь или выполняешь с основного потока - крашится
Значит ещё страннее, так как есть случаи когда не крашится
источник

AH

Ayrat Hudaygulov in F# Chat
Pavel
Значит ещё страннее, так как есть случаи когда не крашится
Репро?
источник

g

gsomix in F# Chat
Pavel
Значит ещё страннее, так как есть случаи когда не крашится
В Async.Start не крашится.
источник

P

Pavel in F# Chat
Ayrat Hudaygulov
Репро?
namespace ConsoleApplication1 {
   class Program {
       static void Main(string[] args) {
           Task.Factory.StartNew(() => {
               Thread.Sleep(10000);
               Console.WriteLine("crash now!");
               throw new Exception("shit happens");
           });
           Console.WriteLine("wait exception..");
           var k = Console.ReadKey();
           Console.WriteLine("still working..");
           k = Console.ReadKey();
           Console.WriteLine("exit now");
       }
   }
}
источник

AH

Ayrat Hudaygulov in F# Chat
gsomix
В Async.Start не крашится.
Потому что оно сразу на тредпул уезжает
источник

AH

Ayrat Hudaygulov in F# Chat
Pavel
namespace ConsoleApplication1 {
   class Program {
       static void Main(string[] args) {
           Task.Factory.StartNew(() => {
               Thread.Sleep(10000);
               Console.WriteLine("crash now!");
               throw new Exception("shit happens");
           });
           Console.WriteLine("wait exception..");
           var k = Console.ReadKey();
           Console.WriteLine("still working..");
           k = Console.ReadKey();
           Console.WriteLine("exit now");
       }
   }
}
И что ты тут ожидаешь?)
источник

P

Pavel in F# Chat
То есть иногда не крашится
источник

AH

Ayrat Hudaygulov in F# Chat
Pavel
То есть иногда не крашится
Но тут таска на тредпул уехала
источник

AH

Ayrat Hudaygulov in F# Chat
И крашнула тред где-то в ебенях
источник

AH

Ayrat Hudaygulov in F# Chat
Без отлова.
источник

g

gsomix in F# Chat
Ayrat Hudaygulov
Потому что оно сразу на тредпул уезжает
Угу. Поэтому с Async.Start очень внимательно нужно обращаться.
источник

P

Pavel in F# Chat
gsomix
В Async.Start не крашится.
Вот как раз в таком кейсе у меня по крешило
источник

AH

Ayrat Hudaygulov in F# Chat
Pavel
Вот как раз в таком кейсе у меня по крешило
Репро?)
источник

g

gsomix in F# Chat
Pavel
Вот как раз в таком кейсе у меня по крешило
Показывай код.
источник

P

Pavel in F# Chat
Это сложнее) дело было на проде, иис уронило
источник

P

Pavel in F# Chat
Или код асинк функции кинуть?
источник

AH

Ayrat Hudaygulov in F# Chat
Как можно крашнуть из таски

void Main {
ThrowAsync().GetAwaiter.GetResult
}

Или

void Main {
 ThrowAsync ();
}
Где
async Task ThrowAsync {
 throw new Exception ()
}
источник