C# 后台线程运行期间WinForm UI响应缓慢

C# 后台线程运行期间WinForm UI响应缓慢,c#,multithreading,winforms,C#,Multithreading,Winforms,我设计了一个长期流程,如下结构: void OnButtonClick() { object initState = 0; Thread thread = new Thread(new ParameterizedThreadStart(DoLongTimeProcess)); thread.IsBackground = true; thread.Start(initState); } void DoLongTimeProcess(object initStat

我设计了一个长期流程,如下结构:

void OnButtonClick() {
    object initState = 0;

    Thread thread = new Thread(new ParameterizedThreadStart(DoLongTimeProcess));
    thread.IsBackground = true;
    thread.Start(initState);
}

void DoLongTimeProcess(object initState) {
    // ... Do something
    InvokeAsyncMethod(CallbackFunction);
}

void CallbackFunction() {
    object newState = AnotherFunction(); // Don't care, just a function to create state

    // A 'if' logic to call function again, ex: if (newState is int)
    DoLongTimeProcess(newState);
}
据我所知,线程在第一次调用时已在
InvokeAsyncMethod
处结束。因此,我无法控制稍后调用的方法的优先级。我不想在
CallbackFunction
中创建另一个线程,因为它已经属于另一个线程


在上述进程运行期间,UI的响应速度似乎很慢,例如,用户希望取消该进程。如何使UI响应更快?

您应该设置UI线程优先级。请考虑使用BuffTeaWror类来处理WiFrase中的后台任务。@ MRIDA:我应该让它默认。不想让我的UI几乎resource@NikolaosGeorgiou:无法在此处使用
BackgroundWorker
,因为在
DoLongTimeProcess
结束时,它调用了一个异步方法,因此,
BackgroundWorker
在此处结束其任务,就像我的线程那样。请提供一个简单的SSCCE