0

私のWindowsサービスプロジェクトのこのコードは私にコンパイルエラーを与えます 無効な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);

      }
4

1 に答える 1

2

基本的にを返すメソッドからThreadStartorを作成することはできません。これらは、コンストラクターに渡すことができる 2 つのデリゲート型であり、適用可能なメソッド グループ変換はありません。ParameterizedThreadStartboolThread

戻り値を気にしない場合 (最初は奇妙に思えます)、最も簡単な方法はおそらくラムダ式を使用して呼び出し、戻り値を無視することです。

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