2012-08-29 13 views
0

這個代碼在我的Windows服務項目給我的編譯錯誤 預計爲void InitializeBridge簽名我怎麼能解決C#與布爾方法這個錯誤線程

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

     } 
+0

什麼你得到的錯誤? –

回答

2

您不能創建從它返回bool的方法ThreadStartParameterizedThreadStart,基本上是這樣。這些是可以傳遞給Thread構造函數的兩種委託類型,這裏沒有適用的方法組轉換。

如果你不關心的返回值(這似乎很奇怪下手),最簡單的方法可能是使用lambda表達式來調用它,忽略返回值:

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

謝謝@Jon Skeet – tito11

相關問題