Task.Run'dan özel durumumu yakalamakla ilgili bir sorun yaşadım Kodumu değiştirdim ve sorunum çözüldü. Bu iki şekilde Task.Run içindeki özel durumları ele alma arasındaki farkın ne olduğunu bulmaya hazırım:Task.Run İstisnası Nasıl Kullanılır
Dış fonksiyonda bu özel durumu yakalayamıyorum, ancak İçinde bunu yakalayabiliyorum.
void Outside()
{
try
{
Task.Run(() =>
{
int z = 0;
int x = 1/z;
});
}
catch (Exception exception)
{
MessageBox.Show("Outside : " + exception.Message);
}
}
void Inside()
{
Task.Run(() =>
{
try
{
int z = 0;
int x = 1/z;
}
catch (Exception exception)
{
MessageBox.Show("Inside : "+exception.Message);
}
});
}
DÜZENLEME (Yinelenen Açıklama):
Ben await Task.Run(...)
arayarak zaman uyumsuz olması tutucu işlevi ihtiyacı beri zaman uyumsuz benim İç ve dış fonksiyonlar olmak istemedim.
Bkz. [Özel Durum İşleme (Görev Paralel Kitaplığı)] (https://msdn.microsoft.com/en-us/library/dd997415%28v=vs.110%29.aspx) –
OP ise bu bir kopya değildir. "bekliyor" kullanmıyor ... Ve eğer .net 4.x kullanıyorsa, 'bekle' kullanamaz. –
@MatthewWatson Emin misin? 'bekliyor'. NET 4.x! –