我的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);
}
答案 0 :(得分:2)
您无法从返回ThreadStart
的方法创建ParameterizedThreadStart
或bool
。这些是可以传递给Thread
构造函数的两个委托类型,这里没有适用的方法组转换。
如果你不关心返回值(这看起来很奇怪),最简单的方法可能是使用lambda表达式来调用它并忽略返回值:
var daemonThread = new Thread(() => SharedData.InitializeBridge());