Threads girados com Task.Run sempre saem com o código de saída 259 [duplicado]
Esta pergunta já tem uma resposta aqui:
O que é um código de saída de encadeamento? 3 respostasComo um exemplo simples, eu tenho um aplicativo WPF com um único botão na janela principal e o código por trás, assim:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
async void Button_Click(object sender, RoutedEventArgs e)
{
await Task<bool>.Run(() => this.DoOnThread());
}
async Task<bool> DoOnThread()
{
Thread.CurrentThread.Name = "MyTestThread";
Thread.Sleep(1000);
return true;
}
}
Se eu quebrar em "return true" através da janela de threads do VisualStudio, posso obter o ThreadID, se eu continuar e deixar o código completo e esperar um pouco até que o thread saia, recebo "O thread 0x9ad34 saiu com o código 259 (0x103 ) "exibido na janela de saída do VS.
O que estou fazendo de errado e como garantir que recebo um código de saída de thread 0?