0

我的 Windows 服务项目中的这段代码给了我编译错误 Expected a method with void InitializeBridge signature

      static void Main(string[] args)
      {
            if (args != null && args.Length == 1 && args[0].StartsWith("-c"))
            {
                 BridgeService bridgeService = new BridgeService();

                 if (Vytru.Platform.Bridge.Configuration.LicenseValidetor.ValidCountAndTypeDevices())
                 {
                      Console.WriteLine("Bridge Service Is Started ......");

                      var daemonThread = new Thread(SharedData.InitializeBridge);
                      daemonThread.Start();
                 }
                 else
                 {
                      Console.WriteLine("Bridge Service License is not Valid ...");
                 }
            }
            else
            {
                 ServiceBase[] ServicesToRun;
                 ServicesToRun = new ServiceBase[] 
                  { 
                      new BridgeService() 
                  };
                 ServiceBase.Run(ServicesToRun);
            }
      }

这是我的静态方法InitializeBridge..

      public static bool InitializeBridge()
      {
            return DeviceList.All(CreateBridgeConnection);

      }
4

1 回答 1

2

基本上,您不能从返回的方法创建ThreadStartor 。这是可以传递给构造函数的两种委托类型,这里没有适用的方法组转换。ParameterizedThreadStartboolThread

如果您不关心返回值(一开始看起来很奇怪),最简单的方法可能是使用 lambda 表达式来调用它并忽略返回值:

var daemonThread = new Thread(() => SharedData.InitializeBridge());
于 2012-08-29T20:50:00.403 回答