解决跨线程异常的C#扩展

解决跨线程异常的C#扩展,c#,multithreading,C#,Multithreading,是否有任何扩展方法可用于解决windows窗体中的跨线程异常,如wpf窗体或任何常规模式中的跨线程异常 Invoke在这里已经做了一些事情来短路,但是要完成它就很简单了: public static class SyncExtensions { public static void InvokeIfRequired(this ISynchronizeInvoke ctrl, MethodInvoker method) { if(ctrl.Invok

是否有任何扩展方法可用于解决windows窗体中的跨线程异常,如wpf窗体或任何常规模式中的跨线程异常


Invoke
在这里已经做了一些事情来短路,但是要完成它就很简单了:

public static class SyncExtensions {
    public static void InvokeIfRequired(this ISynchronizeInvoke ctrl,
            MethodInvoker method) {
        if(ctrl.InvokeRequired) ctrl.Invoke(method, null);
        else method();
    }
}

之所以选择
MethodInvoker
,是因为它在
Invoke
中有特定的处理,以避免使用
DynamicInvoke
(反射)。

您是否查看了该方法?

能否显示您遇到问题的代码。