如何在构造函数中捕获异步方法的异常?

ca9163d9

我有一个 Winforms 程序,以下是构造函数,它创建一个计时器来限制昂贵的异步调用。

public partial class Form1: Form
{
    public Form1()
    {
        _timer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(1) };
        _timer.Tick += (s, e) =>
        {
            _flag = false;
            _timer.Stop();
            try
            {
                Task.Run(async () => await Presenter.Search()); // Call async DB calls
            }
            catch (Exception ex) // Cannot capture the Exception of `Presenter.Search()`
            {
                MessageLabel.Text = "Error:....";
            }
        };
    }

    private readonly DispatcherTimer _timer;
    private bool _flag;

并且点击事件触发异步调用

public void OnCheckedChanged(object sender, EventArgs e)
{
    if (!_flag)
    {
        _flag = true;
        _timer.Start();
    }
}

如何捕获异常Presenter.Search()并在表单中显示错误?

如果我改变它会阻塞UI线程吗

Task.Run(async () => await Presenter.Search());

Presenter.Search().RunSynchronously()

?

JS管家

要处理异常表单,Presenter.Search只需为您的Tick事件使用异步事件处理程序

_timer.Tick += async (s, e) =>
{
    _flag = false;
    _timer.Stop();
    try
    {
        await Presenter.Search(); // Call async DB calls
    }
    catch (Exception ex) // Cannot capture the Exception of `Presenter.Search()`
    {
        MessageLabel.Text = "Error:....";
    }
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在 Azure 函数中捕获异步方法异常

来自分类Dev

如何捕获构造函数异常?

来自分类Dev

在构造函数中捕获异常

来自分类Dev

如何从构造函数中捕获异常而不处理整个函数?

来自分类Dev

如何在异步函数中抛出异常?

来自分类Dev

PostgreSQL:如何在函数中捕获异常?

来自分类Dev

在异步方法中捕获异常

来自分类Dev

如何从C ++中的构造函数中捕获异常

来自分类Dev

C ++在构造函数中捕获异常

来自分类Dev

从构造函数中调用构造函数并捕获异常

来自分类Dev

如何捕获异步void方法异常?

来自分类常见问题

如何在yield调用函数中防止或捕获StopIteration异常?

来自分类Dev

如何在构造函数中调用方法?

来自分类Dev

如何在构造函数中添加方法?

来自分类Dev

如何在SOAP Web服务方法中捕获任何异常?

来自分类Dev

如何在root方法中捕获所有内部异常?

来自分类Dev

如何从构造函数调用异步方法?

来自分类Dev

未通过await调用时在异步方法中捕获异常

来自分类Dev

构造函数中的异常

来自分类Dev

如何在PowerShell中捕获异常?

来自分类Dev

如何在向量中捕获.erase异常?

来自分类Dev

如何在python中捕获异常消息?

来自分类Dev

如何在PowerShell中捕获异常?

来自分类Dev

如何在nSpec中捕获异常

来自分类Dev

如何在标签中设置捕获异常?

来自分类Dev

如何在iOS中捕获此异常?

来自分类Dev

如何在Java中捕获异常?

来自分类Dev

异常构造函数中的异常

来自分类Dev

如何捕获已被 Python 中的嵌套函数调用捕获的异常