我想使用Stuart的messenger插件在业务流程完成时提供即时用户消息。例如。在我的BL课程中我有代码:
var message = new UserMessages(this, "STARTING PROCESS");
_messenger.Publish<UserMessages>(message );
//PROCESS START
message = new UserMessages(this, "READING FILE 1");
_messenger.Publish<UserMessages>(message);
//READING FILE 1 PROCESS
message = new UserMessages(this, "ENDING PROCESS");
_messenger.Publish<UserMessages>(message);
//END PROCESS
我希望我的订阅者以异步方式显示消息(即时在gui中)。我试过用
_token = messenger.SubscribeOnThreadPoolThread<UserMessages>(OnImportMessage);
在我的viewmodel中,因为我认为这是SubscribeOnThreadPoolThread应该做的,但它没有告诉我预期的结果含义:
1.用户点击一个按钮,根据上面的消息服务,用户必须在textedit控件内看到:
1.开始过程 2.READING FILE1 3.ENDING PROCESS
我最终在屏幕上显示的是最后一条消息“ENDING PROCESS”,因为最终整个过程都是主线程的一部分。
我想了解如何使用messenger插件异步执行此操作。
我是否需要使用额外的异步/等待操作?
我希望这对你有用。
提前致谢