У меня есть следующий код в приложении WPF
При возникновении исключения единственный стек вызовов:
WpfApp119.ViewModel.Compute() Line 23 C#
WpfApp119.ViewModel.LoadData.AnonymousMethod__0_0() Line 18 C#
System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(System.Threading.Thread threadPoolThread, System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) Unknown
System.Threading.Tasks.Task.ExecuteWithThreadLocal(ref System.Threading.Tasks.Task currentTaskSlot, System.Threading.Thread threadPoolThread) Unknown
System.Threading.ThreadPoolWorkQueue.Dispatch() Unknown
System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart() Unknown
Поэтому вы не знаете, был ли он вызван из MainWindow.Button_Click1 или MainWindow.Button_Click2.
Таким образом, если бы этот код был в реальном приложении или в тесте, как бы вы определили, откуда поступил вызов?
public class ViewModel
{
public async Task LoadData()
{
await Task.Run(() => Compute());
}
private void Compute()
{
throw new Exception("");
}
}
public partial class MainWindow : Window
{
private ViewModel _viewModel = new();
public MainWindow()
{
InitializeComponent();
}
private async void Button_Click1(object sender, RoutedEventArgs e)
{
await _viewModel.LoadData();
}
private async void Button_Click2(object sender, RoutedEventArgs e)
{
await _viewModel.LoadData();
}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... tack-trace
Асинхронная трассировка стека ⇐ C#
Место общения программистов C#
1731776867
Anonymous
У меня есть следующий код в приложении WPF
При возникновении исключения единственный стек вызовов:
WpfApp119.ViewModel.Compute() Line 23 C#
WpfApp119.ViewModel.LoadData.AnonymousMethod__0_0() Line 18 C#
System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(System.Threading.Thread threadPoolThread, System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) Unknown
System.Threading.Tasks.Task.ExecuteWithThreadLocal(ref System.Threading.Tasks.Task currentTaskSlot, System.Threading.Thread threadPoolThread) Unknown
System.Threading.ThreadPoolWorkQueue.Dispatch() Unknown
System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart() Unknown
Поэтому вы не знаете, был ли он вызван из MainWindow.Button_Click1 или MainWindow.Button_Click2.
Таким образом, если бы этот код был в реальном приложении или в тесте, как бы вы определили, откуда поступил вызов?
public class ViewModel
{
public async Task LoadData()
{
await Task.Run(() => Compute());
}
private void Compute()
{
throw new Exception("");
}
}
public partial class MainWindow : Window
{
private ViewModel _viewModel = new();
public MainWindow()
{
InitializeComponent();
}
private async void Button_Click1(object sender, RoutedEventArgs e)
{
await _viewModel.LoadData();
}
private async void Button_Click2(object sender, RoutedEventArgs e)
{
await _viewModel.LoadData();
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79195143/async-stack-trace[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия