Avalonia 测试偶遇 Dispatcher.UIThread 直接失败

在如今ai能替代大部分代码编写时,写单元测试总会遇到各种各样的问题
实际上自己编写也总是遇到,这个问题无论在网上搜索还是ai回答总是答非所问
于是就自己写一篇解决方法

示例

    private void OnMessageDecoded(IModbusMessage message)
    {
        // 同步到 UI 线程
        Dispatcher.UIThread.Post(() =>
        {
            // 插入到开头,保持最新的在前
            Messages.Insert(0, message);
            
            // 限制消息数量
            TrimMessages();
        });
    }

由于我的消息来自于另个线程而非UI线程,它就必须同步到UI线程来。测试就不会执行这段传递的lambda。

在github issue找到的,手动调用`

Dispatcher.UIThread.RunJobs()
posted @ 2026-01-08 23:06  sheng_ri  阅读(33)  评论(0)    收藏  举报