How can I restart a windows service programmatically in .NET

How can I restart a windows service programmatically in .NET? Also, I need to do an operation when the service restart is completed.