没有重载''匹配委托'System.EventHandler'

时间:2014-01-14 10:55:21

标签: c#

有关于

的错误
ParameterizedThreadStart op = new ParameterizedThreadStart(new EventHandler(this.SendResultToClient));

'SendResultToClient'没有重载匹配委托'System.EventHandler'

任何帮助

 public void Add(double num)
   {
    double result = (num+10);
             //Gets a channel to the client instance that called the current operation.
            callback = OperationContext.Current.GetCallbackChannel<IAddNumDuplexCallback>();
            //Represents the method that executes on a Thread.
            ParameterizedThreadStart op = new ParameterizedThreadStart(new EventHandler(this.SendResultToClient));
            Thread t = new Thread(op);
             //t.IsBackground = true;
             t.Start(result);
         }

        //The function
        public void SendResultToClient(double result)
        {
          Thread.Sleep(500);
          callback.Result(result);
        }
   }
}

1 个答案:

答案 0 :(得分:2)

您以错误的方式使用ParameterizedThreadStart

ParameterizedThreadStart是一个方法的委托,该方法接受一个类型为object的参数并返回void。

您需要更改SendResultToClient方法:

public void SendResultToClient(object data)
{
    double result = (double)data;
    Thread.Sleep(500);
    callback.Result(result);
}

以这种方式启动线程:

ParameterizedThreadStart op = SendResultToClient;
Thread t = new Thread(op);
t.Start(result);