myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
   » Plugin für Firefox
   » Plugin für IE
   » Gadget für Windows
» Regeln
» Wie poste ich richtig?
» Datenschutzerklärung
» wbb-FAQ

Mitglieder
» Liste / Suche
» Stadt / Anleitung dazu
» Wer ist wo online?

Angebote
» ASP.NET Webspace
» Bücher
» Zeitschriften
   » dot.net magazin
» Accessoires

Ressourcen
» .NET-Glossar
» guide to C#
» openbook: Visual C#
» openbook: OO
» .NET BlogBook
» MSDN Webcasts
» Search.Net

Team
» Kontakt
» Übersicht
» Wir über uns
» Bankverbindung
» Impressum

» Unsere MiniCity
MiniCity
» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Gemeinschaft » .NET-Komponenten und C#-Snippets » UI Update aus einem Thread mit CompactFramework
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

UI Update aus einem Thread mit CompactFramework

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
nxexoxn nxexoxn ist männlich
myCSharp.de-Mitglied

Dabei seit: 09.02.2012
Beiträge: 7
Entwicklungsumgebung: Visual Studio 2008
Herkunft: Deutschland


nxexoxn ist offline

UI Update aus einem Thread mit CompactFramework

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Beschreibung:

Beispiel-Anwendung im CompactFramework, die mit Threads arbeitet, um dem Benutzer anzuzeigen, dass ein Prozess in Bearbeitung ist, bzw. dass die Anwendung im Moment keine Eingaben entgegen nimmt:

C#-Code:
using System;

using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;

namespace SmartDeviceProject1
{
    public partial class Form1 : Form
    {
        private bool Working = true;
        private delegate void MethodInvoker();

        public Form1()
        {
            InitializeComponent();
        }

        private void ProgressBarWorking()
        {
            try
            {
                while (Working)
                {
                    for (int i = 0; i < 100; i++)
                    {
                        Invoke((MethodInvoker)delegate()
                        {
                            progressBar1.Value = i;
                        });

                        Thread.Sleep(50);
                    }
                }
            }
            catch { }
        }

        private void Label1Working()
        {
            try
            {
                while (Working)
                {
                    Invoke((MethodInvoker)delegate()
                    {
                        switch (label1.Text)
                        {
                            case "/":
                                label1.Text = "\\";
                                break;
                            case "\\":
                                label1.Text = "/";
                                break;
                        }
                    });

                    Thread.Sleep(100);
                }
            }
            catch { }
        }

        private void Label2Working()
        {
            try
            {
                while (Working)
                {
                    Invoke((MethodInvoker)delegate()
                    {
                        if (label2.BackColor == Color.Red)
                            label2.BackColor = Color.Gray;
                        else
                            if (label2.BackColor == Color.Gray)
                                label2.BackColor = Color.Red;
                    });

                    Thread.Sleep(500);
                }
            }
            catch { }
        }

        private void FormWorking()
        {
            try
            {
                while (Working)
                {
                    Invoke((MethodInvoker)delegate()
                    {
                        switch (this.Text)
                        {
                            case ".":
                                this.Text = "..";
                                break;
                            case "..":
                                this.Text = "...";
                                break;
                            case "...":
                                this.Text = "....";
                                break;
                            case "....":
                                this.Text = ".....";
                                break;
                            case ".....":
                                this.Text = "......";
                                break;
                            case "......":
                                this.Text = ".";
                                break;
                        }
                    });

                    Thread.Sleep(500);
                }
            }
            catch { }
        }

        private void Form1_Closing(object sender, CancelEventArgs e)
        {
            Working = false;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Thread ProgressBarThread = new Thread(new ThreadStart(ProgressBarWorking));
            ProgressBarThread.Priority = ThreadPriority.Lowest;
            ProgressBarThread.Start();

            Thread Label1Thread = new Thread(new ThreadStart(Label1Working));
            Label1Thread.Priority = ThreadPriority.Lowest;
            Label1Thread.Start();

            Thread Label2Thread = new Thread(new ThreadStart(Label2Working));
            Label2Thread.Priority = ThreadPriority.Lowest;
            Label2Thread.Start();

            Thread FormThread = new Thread(new ThreadStart(FormWorking));
            FormThread.Priority = ThreadPriority.Lowest;
            FormThread.Start();
        }
    }
}

Hier auch als Visual Studio 2008 Projekt zum Download:  http://www.autoid.de.tl/thread-.-~-.-example.htm



Schlagwörter: Thread, CompactFramework, Windows CE, mobile


Dateianhang:
zip threadwait_example.zip (48,49 KB, 77 mal heruntergeladen)
09.02.2012 16:34 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 2 Jahre.
Der letzte Beitrag ist älter als 2 Jahre.
Antwort erstellen


© Copyright 2003-2014 myCSharp.de-Team. Alle Rechte vorbehalten. 19.12.2014 09:35