Visual C# 2010 Express - dziwny problem

0

Witam serdecznie,

od razu przejdę do rzeczy. Otóż programuję sobie w Visual C# 2010 Express i wszystko byłoby fajnie, gdyby nie mały problem. Mianowicie normalne zachowanie Visual'a po naciśnięciu F5 (debugging) dla aplikacji okienkowych (Windows Forms) jest takie, że pojawia się główne okienko programu i program czeka na reakcję użytkownika (zakładam, że nie przetwarza on żadnych skomplikowanych danych na starcie). I tak właśnie było do pewnego momentu. Otóż od jakiegoś czasu po naciśnięciu F5 dla aplikacji, nad którą obecnie pracuję główne okienko się nie pojawia. Za to proces [nazwia_programu].vshost.exe zaczyna zżerać niemalże 100% zasobów procesora. Oczywiście z poziomu Visual'a mogę zakończyć debugowanie i program przechodzi w tryb projektowania. Dodam jeszcze, że pozostałe aplikacje, nad którymi pracowałem wcześniej zachowują się normalnie, czyli problem jest z jedną konkretną solucją, która jeszcze dzisiaj w południe kompilowała i debugowała się normalnie, natomiast teraz już się nie pojawia. Czy ktoś z Was miał taki problem. Na koniec dodam, że nie dokonywałem żadnych zmian w ustawieniach. Zwyczajnie pisałem jakieś kawałki kodu i od pewnego momentu zaistniała opisana sytuacja. Proszę o pomoc.

0

Czyli piszesz w na WinForms? Przeanalizuj co dodałeś i ew. spróbuj tymczasowo usunąć ten dodany fragment kodu i zobacz czy się poprawiło czy nie. Ja zawsze tak mam, ale tylko przez chwilę, jak debugger ma wywalić błąd.

0

Zapewne w tym dodanym kodzie się gdzieś zapętlasz i dlatego program zwisa.

0

To nie jest problem z zapętlaniem, ponieważ gdy nacisnę F6 (Build Solution) to wszystko się ładnie kompiluje, a aplikacja z podkatalogu Release normalnie się odpala i działa. Nie odpala się za to aplikacja z podkatalogu Debug. To znaczy odpala się, bo pojawia się na liście procesów (w menadżerze procesów) i pochłania prawie 100% zasobów procesora, ale jej nie widać, żadne okienko się nie pojawia.

0

A w Program.cs masz

Application.Run(new Form1());

Czy może pusto w nawiasie?

0

To zbuduj aplikację w konfiguracji Release i sprawdź.
Pokaż kod odpowiedzialny za inicjalizację głównej formy.

0

Program.cs wygląda tak:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace WindowsFormsApplication5
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}

a konstruktor formy (w pliku Form1.cs) tak:

public Form1()
        {
            InitializeComponent();
            NewGame();
        }
0

A co robi metoda NewGame?
BTW, wiesz, że w konstruktorze formy lepiej nie umieszczać kodu, który może się wywalić?

0

W tym całym NewGame();, nie masz przypadkiem wstawionego ukrywania formy?

0

NewGame() nie ma nic do rzeczy, ponieważ tak jak powiedziałem, gdy zbuduję solucję to aplikację z katalogu Release mogę normalnie odpalić i wszystko działa. Nie mogę odpalić aplikacji z katalogu Debug.

0

A próbowałeś uruchomić projekt na innej maszynie?

0

Jeżeli program nie działa, to w 99% jest to wina programisty i jego kodu. Co do debug i release, to jesteś pewien, że wersja release nie jest to wcześniejsza działająca jeszcze wersja?

0

Program wygenerowany poleceniem Build Solution do katalogu Release działa bez zastrzeżeń i nie jest to stara wersja, wszystko kompiluje się na bieżąco, tzn. że wprowadzam poprawki do kodu i one są "uwzględniane" przy kompilacji. Natomiast program wygenerowany poleceniem Debug uruchamia się, bo jest widoczny na liście procesów (i zżera prawie 100% zasobów procesora) ale nie widać żadnych oznak jego działania. Nie pojawia się żadne okienko ani komunikat.

0

Wrzuć kod tej funkcji NewGame() jeśli możesz :-)

0
Szach napisał(a)

Natomiast program wygenerowany poleceniem Debug uruchamia się, bo jest widoczny na liście procesów (i zżera prawie 100% zasobów procesora) ale nie widać żadnych oznak jego działania. Nie pojawia się żadne okienko ani komunikat.

A jesteś w stanie przejść debugerem przez konstruktor Form1, a w szczególności metodę NewGame?

0
somekind napisał(a)

A jesteś w stanie przejść debugerem przez konstruktor Form1, a w szczególności metodę NewGame?

Tak, przechodzę przez cały program, a forma się nie pokazuje.

0

Czy Twój program jest ściśle tajny? Czy możesz wrzucić jego źródła?

0

Dobra, mniejsza z tym. Ściągnąłem ze szkolnego MSDNAA Visual Studio 2010 Professional i przesiadłem się na nią z Express'a - tu wszystko działa.

0

Pod nickiem "Szach" ukrywa się chyba płemieł Tusk, bo wychodzi na to, że mamy tu do czynienia z cudem.

0

Jakim cudem? Nie, nie próbowałem przeinstalować Express'a. Skoro mam już Professional'a z niego będę korzystał.

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