Aplikacja przestała działać - VS 2010

0

Witam! Pisząc komunikator (klient-serwer) było wszystko dobrze, aż do dziś. Nie mogę uruchomić 2 klientów, bo ten drugi i każdy następny jest "...przestał działać". Dziś co dodałem do komunikatora (do serwera i do klienta) to zapisywanie logu do pliku. Czy to by mogło być powodem i dlaczego? Używam TextWriter'a. Tak to nic chyba nie zmieniałem poza tym. Acha dodam też, że tworzenie pliku (stream'y i TextWriter) robię w konstruktorze formy głównej i od razu zapisuje tam też, że aplikacja została uruchomiona. Może tu leży problem? I tu dodatkowe pytanie - lepiej takie rzeczy co mają być wykonywane na początku robić w konstruktorze czy onLoad formy?

0

Pewnie TextWriter rzuca wyjątek, że nie może otworzyć pliku do zapisu (i co tu się dziwić...).

  1. Dodaj obsługę wyjątków.
  2. Zablokuj możliwość uruchamiania więcej instancji aplikacji niż jedna albo tak ją przebuduj, żeby nie korzystały z tych samych zasobów.
  3. Ani w konstruktorze formy ani w onload, co ma forma do zapisu logów? O programowaniu obiektowym coś słyszał? Projektowaniu aplikacji? Oddzielaniu warstw?
0

Faktycznie... Jak zrobić żeby tylko jedną instancję, da się bez WinAPI?
O tych rzeczach jeszcze nic nie wiem, mógł byś przybliżyć jak to zrobić poprawnie? Tzn. o programowaniu obiektowym to wiem, ale co to ma do zasobów?

0

Angielski w szkole miałeś? Z google korzystać potrafisz?

prevent multiple instances C#

0

Niby działa, ale jednak nie. Funkcja zwracająca nazwę procesu się zgadza, mimo to druga funkcja do szukania procesów zwraca takich 0. Dlaczego tak się dzieje?
Kod:

            System.Diagnostics.Process[] instances = System.Diagnostics.Process.GetProcessesByName(Application.ProductName + ".exe");
            if (instances.Length > 1)
            {
                MessageBox.Show("Nie możesz uruchomić więcej niż jeden klient!", "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
                Application.Exit();
            }

W serwerze jest ciutkę inaczej, bo tam jest konsola, ale nazwę procesu dobrze zwraca.

1 użytkowników online, w tym zalogowanych: 0, gości: 1