Jacek K.

Jacek K. Software Developer,
Telecetera Ltd.

Temat: instancje aplikacji

jedna z funkcjonalnosci mojej aplikacji nie moze byc wykonywana w momencie, gdy jest wiecej niz 1 instancji aplikacji,
jak sprawdzic ktora instancja jest app?

konto usunięte

Temat: instancje aplikacji

jeśli chodzi Ci o to, aby w jednymc zasie była tylko jedna istancja to masz tu przykład:

static void Main()
{
Process ThisProcess = Process.GetCurrentProcess();

Process [] AllProcesses = Process.GetProcessesByName(ThisProcess.ProcessName);

if (AllProcesses.Length > 1)
{
MessageBox.Show(ThisProcess.ProcessName + " is already running",
ThisProcess.ProcessName, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
Application.Run(new MainForm());
}
}
Jacek K.

Jacek K. Software Developer,
Telecetera Ltd.

Temat: instancje aplikacji

chce dopuscic wystapienie wielu instancji, chce tylko zablokowac pewna funkcjonalnosc podczas uruchamiania pewnej instancji
ale twoj przyklad chyba rozwiazuje moj problem
dzieki

konto usunięte

Temat: instancje aplikacji

również, tam gdzie masz messagebox'a mozesz okroić funkcjonalność

konto usunięte

Temat: instancje aplikacji

Ja mam inne rozwiązanie. Deklaracja zmiennych w klasie głównej programu.

[...]
private static bool _firstInst;
private static Mutex appMutex = new Mutex(true, "NAZWA", out _firstInst);
[...]

Później w programie:

if(!_firstInst)
{
// instancji > 1
}

Na koniec, przy zamykaniu programu:

appMutex.ReleaseMutex();
appMutex.Close();Jarek D. edytował(a) ten post dnia 31.08.08 o godzinie 11:24
Sebastian H.

Sebastian H. Starszy Programista,
VidCom.pl

Temat: instancje aplikacji

Ja stosuje coś takiego:

public class AppInstance
{
private bool isFirst = false;

private Mutex mutex = null;

public AppInstance()
{
try
{
mutex = Mutex.OpenExisting("AppName");
}
catch(WaitHandleCannotBeOpenedException)
{
isFirst = true;
}

if(mutex == null)
{
mutex = new Mutex(false, "AppName");
GC.KeepAlive(mutex);
}
}

public bool IsFirst
{
get { return isFirst; }
}
}

Następna dyskusja:

procesy, instancje aplikacji




Wyślij zaproszenie do