I'm not sure I know what you're looking for ... you can :-
a) send a 'Custom command' to a Windows Service Program using ServiceController.ExecuteCommand
const int DoSomething = 666;
service.ExecuteCommand(DoSomething);
service.WaitForStatus(ServiceControllerStatus.Running, timeout);
This can be done in an external eg Console mode program. The Service implements/overrides ServiceBase.OnCustomCommand to react ..
protected override void OnCustomCommand(int command)
{
if (command == DoSomething)
{
}
}
b) have a 'receiver' (named pipes, tcp/ip) in your service that receives a 'message' from an external source and does something like process a 'task'
c) you can have a Service built with Quartz.Net for example that runs 'tasks', by using all sorts of scheduling specs, eg cron type specs
but, as you have written it, no, you cannot 'call a method in windows service' - maybe you need to update your question and refine your requirements a touch more