【问题标题】:Preventing Subsequent Invoke requirements within cross-thread invokes防止跨线程调用中的后续调用要求
【发布时间】:2009-10-06 09:40:43
【问题描述】:

我有一个跨线程调用正在进行,并且调用工作正常,但是我发现所有后续函数调用也需要调用,否则它会引发异常,我该如何修改我的调用命令,或者通过其他一些解决方案来解决这个问题?

这是我当前的调用者:

foreach (chat_window oc in open_chats)
{
    if (oc.Name == friend)
    {
        string updmsg = msg.Substring(msg.IndexOf('\n')).Trim();
        string[] argNames = new string[2];
        argNames[0] = friend;
        argNames[1] = updmsg;
        Type t = oc.GetType();

        t.InvokeMember("updateChat", 
            System.Reflection.BindingFlags.InvokeMethod, null, oc, argNames);
        }
}

在此先感谢您,Psy

【问题讨论】:

    标签: c# reflection invoke multithreading


    【解决方案1】:

    我认为chat_window 是一些从Control 派生的 WinForms 对象?

    如果是这样,那么您可能希望使用 Control.Invoke/Control.BeginInvoke 来将调用编组回 UI 线程。

    oc.Invoke(oc.updateChat, argNames);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-04
      • 2014-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-08
      • 1970-01-01
      相关资源
      最近更新 更多