C# как узнать число запущенных экземпляров программы?
Это решается использованием именнованного мютекса.
Как по мне, так самый удобный способ без семафоров и мьютексов - использование библиотеки VB. 
Пример есть здесь.