Вы уже принимаете входные данные как целое число, поэтому не работайте со строками. Я рекомендую использовать этот цикл;
Scanner number = new Scanner(System.in);
System.out.print("Even Numbers: ");
for (int i = 0; i <= number; i=i+2) {
System.out.print(i);
}
System.out.println("");
System.out.print("Odd Numbers: ");
for (int i = 1; i <= number; i=i+2) {
System.out.print(i);
}
Используйте Взаимное исключение. Один из примеров выше использования GetProcessByName имеет много протестов. Вот хорошая статья о предмете:
http://odetocode.com/Blogs/scott/archive/2004/08/20/401.aspx
[STAThread]
static void Main()
{
using(Mutex mutex = new Mutex(false, "Global\\" + appGuid))
{
if(!mutex.WaitOne(0, false))
{
MessageBox.Show("Instance already running");
return;
}
Application.Run(new Form1());
}
}
private static string appGuid = "c0a76b5a-12ab-45c5-b9d9-d693faa6e7b9";
Hanselman имеет сообщение при использовании класса WinFormsApplicationBase от Microsoft. Блок VisualBasic, чтобы сделать это.
if (Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName).Length > 1)
{
AppLog.Write("Application XXXX already running. Only one instance of this application is allowed", AppLog.LogMessageType.Warn);
return;
}
Вот код, необходимо удостовериться, что только один экземпляр работает. Это - метод использования именованного взаимного исключения.
public class Program
{
static System.Threading.Mutex singleton = new Mutex(true, "My App Name");
static void Main(string[] args)
{
if (!singleton.WaitOne(TimeSpan.Zero, true))
{
//there is already another instance running!
Application.Exit();
}
}
}
Необходимо использовать Систему. Диагностика. Процесс.
[STAThread]
static void Main() // args are OK here, of course
{
bool ok;
m = new System.Threading.Mutex(true, "YourNameHere", out ok);
if (! ok)
{
MessageBox.Show("Another instance is already running.");
return;
}
Application.Run(new Form1()); // or whatever was there
GC.KeepAlive(m); // important!
}
От: Обеспечение единственного экземпляра Приложения
.NET и: Единственное Взаимное исключение Приложения Экземпляра
Тот же ответ как @Smink и @Imjustpondering со скручиванием:
FAQ Jon Skeet на C# для обнаружения, почему вопросы GC.KeepAlive
Обычно это сделано с именованным Взаимным исключением (используйте новое Взаимное исключение ("Ваше название приложения", верный), и проверьте возвращаемое значение), но существуют также некоторые классы поддержки в Microsoft.VisualBasic.dll, который может сделать это для Вас .
Используйте VB.NET! Нет: действительно ;)
использование Microsoft. VisualBasic. ApplicationServices;
WindowsFormsApplicationBase от VB.Net предоставляет Вам Свойство "SingleInstace", которое определяет другие Экземпляры, и позвольте только одному выполненному Экземпляру.
Эта статья просто объясняет, как можно создать приложение Windows с управлением на количестве его экземпляров или выполнить только единственный экземпляр. Это - очень типичная потребность бизнес-приложения. Уже существует много других возможных решений управлять этим.
http://www.openwinforms.com/single_instance_application.html
http://en.csharp-online.net/Application_Architecture_in_Windows_Forms_2.0 —, Единственный-Instance_Detection_and_Management
Используя Visual Studio 2005 или 2008 при создании проекта для исполняемого файла на окнах свойств в панели "Application" существуют флажок по имени единственный экземпляр “Make application”, что можно активироваться для преобразования приложения на единственном приложении экземпляра.
Вот получение окна, о котором я говорю: Это - проект приложения Windows Visual Studio 2008 года.
Это кажется, что существует 3 фундаментальных метода, которые были предложены до сих пор.
Какие-либо протесты я отсутствовал?