Используя метод Waitone ()C#

Место общения программистов C#
Ответить
Anonymous
 Используя метод Waitone ()

Сообщение Anonymous »

Код: Выделить всё

static Mutex mutex = new Mutex (false, "oreilly.com OneAtATimeDemo");

static void Main()
{
// Wait a few seconds if contended, in case another instance
// of the program is still in the process of shutting down.

if (!mutex.WaitOne (TimeSpan.FromSeconds (3), false))
{
Console.WriteLine ("Another instance of the app is running. Bye!");
return;
}

try
{
Console.WriteLine ("Running. Press Enter to exit");
Console.ReadLine();
}
finally { mutex.ReleaseMutex(); }
}
http://www.albahari.com/nutshell/ch20.aspx

В этом коде:

Код: Выделить всё

if(mutex.WaitOne(TimeSpan.Zero, true))
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
mutex.ReleaseMutex();
}
else
{
MessageBox.Show("only one instance at a time");
}
http://sanity-free.org/143/csharp_dotne ... ation.html

нет инверсии if/bool. Если True будет возвращен, текущий поток будет заблокирован, что будет означать, что два процесса, вызывающие одно и то же приложение, оба остановится?// Don't block the thread while executing code.
//Let the code finish and then signal for another process to enter
< /code>

Каково значение нет! (возвращение правды) и наоборот. Или, другими словами, что происходит в любом случае? Джон Скит показал хороший пример этого на своем сайте, который застрял в моей голове (кредит его объяснениям). Так что, очевидно, Уэйтон ждет, пока одна нить закончит. Возвращаемое значение - это то, что меня смущает.

Подробнее здесь: https://stackoverflow.com/questions/815 ... one-method
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»