WPF Dispatcher并在后台运行它

0 c# wpf multithreading dispatcher

我试图将调度程序包装在一个线程中.但结果并不是我所期待的.我该如何解决这个问题?

    public void Start()
    {
        ThreadStart ts = inner;
        Thread wrapper = new Thread(ts);
        wrapper.Start();
    }

    private void inner()
    {
        _Runner.Dispatcher.Invoke(_Runner.Action, DispatcherPriority.Normal);
    }
Run Code Online (Sandbox Code Playgroud)

Ken*_*art 5

你没有向我们展示足够的代码/解释自己能够提供一个好的答案,但我你的行动(_Runner.Action)是昂贵的,执行缓慢.如果是这样,那就是您的UI没有响应的原因.你实际上是在告诉Dispatcher在UI线程上运行那个昂贵的操作,当你真正想要做的是在后台线程上运行尽可能多的操作时,然后Dispatcher只在必要时编组回UI线程.