Visualizzazione dei risultati da 1 a 5 su 5

Discussione: C# Form e Thread

  1. #1
    Utente di HTML.it L'avatar di atm
    Registrato dal
    Nov 2009
    Messaggi
    54

    C# Form e Thread

    Ciao ragazzi,
    ho un'applicazione console che deve lanciare una form. Tutto questo accade, ma dopo un pò vedo sparire la form mentre l'applicazione console rimane in piedi. Questo non succede se invece di chiamare il metodo Show della form chiamo ShowDialog; quest'ultimo però in caso di chiusura della form non fa chiudere la console(cosa che io vorrei). Vi posto il codice.


    codice:
    protected static Form1 myFrame= null;
    
    static void Main(string[] args)
    {
        myFrame= new Form1();
    
        Thread t = new Thread(new ThreadStart(showForm));
        t.IsBackground = true;
        t.Start(); 
        ............
        ............
    }
    
    private static void showForm()
    {
         myFrame.Show();
    }
    poi una curiosità: come si traduce in C# la seguente riga Java:
    java.awt.EventQueue.invokeLater(.......) ?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    metti isbackground = false

  3. #3
    Utente di HTML.it L'avatar di atm
    Registrato dal
    Nov 2009
    Messaggi
    54
    Niente da fare. La form appare e scompare....

  4. #4
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,539
    Ciao,
    certo che scompare, una volta uscito dal main in questo caso si chiude il programma!
    con show dialog non succede non esci dal main.

    in genere in c# si usa fare
    codice:
    Application.Run(new Form1());
    Guarda la classe Program.cs creata da vs :

    codice:
    namespace WindowsFormsApplication1
    {
        static class Program
        {
            /// <summary>
            /// Punto di ingresso principale dell'applicazione.
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
            }
        }
    }
    a che ti serve il thread separato?

  5. #5
    Utente di HTML.it L'avatar di atm
    Registrato dal
    Nov 2009
    Messaggi
    54
    L'applicazione viene lanciata da un eseguibile c++, tramite C++/CLI unmanaged. Se io lancio la form nel metodo che richiamo nel codice C++, la Form appare ma è tutta grigia e si blocca(Non risponde).

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.