c# wie Sie richtig halt einen thread und starten Sie es zurück?

Habe ich eine Methode hat einige Arbeit und ruft eine Methode auf, nachdem es fertig ist. In dieser neu aufgerufenen Methode, hörte ich den thread.

aber wenn ich halt den thread, alle die folgende Zeile wird nicht ausgelesen werden. Gibt es eine richtige Art und Weise zu beenden den thread und starten Sie es zurück?

Hier ist mein code-snippet:

public partial class Form1 : Form
{
    string strProvider;
    MySqlConnection sqlConn;
    MySqlCommand command;
    MySqlDataReader Reader;

    Thread workerThread;

    public Form1()
    {
        InitializeComponent();
        initializedb();
        workerThread = new Thread(shows);
        workerThread.Start();
        workerThread.IsBackground = true;

    public void shows()
    {
        string k;

        command.CommandText = "SELECT * FROM imageframe1";
        sqlConn.Open();
        Reader = command.ExecuteReader();

        while (Reader.Read())
        {
            k = (string)(Reader.GetValue(1));
            pictureBox1.Image = Image.FromFile(k);
            Thread.Sleep(3000);
        }

        sqlConn.Close();

        stopthread();
    }

    public void stopthread()
    {
        workerThread.Abort();
        //*************everything after this line wont run********
        MessageBox.Show("end");
        //Thread.Sleep(3000);
        //workerThread.Start();
    }

was ich hier mache ist, dass ich bin dabei eine Diashow der Bilder.also ich möchte halt den thread und starte ihn wieder,überprüfen Sie die db für neue Bilder und wieder laufen die ganze Sache statt der Schleife drinnen, es wird eine Menge von Speicher-Ressourcen.aber problem ist, wenn ich es stoppen, ich kann nicht laufen nichts nach.

könnte jemand bitte etwas Licht für einen Anfänger hier??mit Beispielen wäre wirklich gut für mich zu verstehen.

  • Der thread, der Selbstmord begeht, durch den Aufruf stopthread() selbst. Entfernen Sie diese harikiri-code.
  • Warum nicht Sie führen Sie es einfach in einen neuen thread everytime?
  • wie soll ich das machen?kann u geben Sie mir ein Beispiel?
InformationsquelleAutor Psychocryo | 2011-04-26
Schreibe einen Kommentar