Здравствуйте, господа.
Я в полном замешательсвте, ибо данный код:
static void Main(string[] args)
{
try
{
var f = Task.Factory.StartNew(t =>
{
Task.Factory.StartNew(t1 =>
{
Console.WriteLine("start child");
throw new ArgumentException();
},
TaskCreationOptions.AttachedToParent);
}, TaskCreationOptions.None);
f.Wait(1000);
Console.WriteLine(f.IsFaulted);
}
catch(AggregateException exp)
{
Console.WriteLine(exp);
}
Console.WriteLine("done");
Console.ReadLine();
}
выводит на консоль
False
done
start child
А мне кажется (и
тут буквами написано),что данный код должен бросить AggregateException...
Где-то я не допонял
Здравствуйте, Sharov, Вы писали:
Путем гуглежа нашел пример идентичный моему, но работающий ожидаемо. Путем буквального сопоставления обнаружил разницу -- дочерний поток надо стартовать с пустым аргументом, т.е.
не
Task.Factory.StartNew(t1 => ...
а
Task.Factory.StartNew(() => ...
Вопрос -- почему так? Как это может так разительно влиять на поведение?
Здравствуйте, Sharov, Вы писали:
S>Вопрос -- почему так? Как это может так разительно влиять на поведение?
Не та перегрузка выбралась,
Task StartNew(System.Action<object> action, object state)
Если стоит решарпер — поставьте heap allocation viewer и подсветку для boxing allocation оставьте. Остальные в принципе можно отключить (но это вопрос личных предпочтений, я только очевидные аллокации отключил).
В топик призывается @SergeyT с его
ErrorProne.NET — ещё одна диагностика, которую точно стоит добавить.
Здравствуйте, Sinix, Вы писали:
S>Здравствуйте, Sharov, Вы писали:
S>>Вопрос -- почему так? Как это может так разительно влиять на поведение?
S>Не та перегрузка выбралась,
S>S>Task StartNew(System.Action<object> action, object state)
S>
S>Если стоит решарпер — поставьте heap allocation viewer и подсветку для boxing allocation оставьте. Остальные в принципе можно отключить (но это вопрос личных предпочтений, я только очевидные аллокации отключил).
Круть. Огромная благодарность Вам и Пельмешке
Я так понимаю, что ребята из мс тут сильно выступили. Или я сильно выступил.
Здравствуйте, Sharov, Вы писали:
S>Круть. Огромная благодарность Пельмешке
А вот присоединюсь
S>Я так понимаю, что ребята из мс тут сильно выступили. Или я сильно выступил.
Первое — да, второе — снова да, но уже в хорошем смысле
9/10 расследования уже сделано было, я на готовое подтянулся.
Здравствуйте, Sinix, Вы писали:
S>В топик призывается @SergeyT с его ErrorProne.NET — ещё одна диагностика, которую точно стоит добавить.
Ага. Аналогичные чудеса изредко приключаются с Html.ActionLink — та же хрень, перегрузка с object в параметрах.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>