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()

浙公网安备 33010602011771号