我如何用c#中的bool方法解决这个错误线程

时间:2012-08-29 20:47:25

标签: c# multithreading windows-services

我的Windows服务项目中的这段代码给我编译错误 预期使用void InitializeBridge签名的方法

      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);

      }

1 个答案:

答案 0 :(得分:2)

您无法从返回ThreadStart的方法创建ParameterizedThreadStartbool。这些是可以传递给Thread构造函数的两个委托类型,这里没有适用的方法组转换。

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

var daemonThread = new Thread(() => SharedData.InitializeBridge());