Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 05:42

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[C#] Problem mit For (& If) Abfrage

Discussion on [C#] Problem mit For (& If) Abfrage within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 61
Join Date: Jun 2014
Posts: 71
Received Thanks: 15
[C#] Problem mit For (& If) Abfrage

Hallo Elitepvpers,

Ich wollte grade eine Progressbar (mit dem Marqueestyle) machen und diese 10 Sekunden lang laufen lassen.

Mit Thread.Sleep() hatte es nicht funktioniert (war mein erster Versuch):

Code:
public static void start(int i, char o)
{
     progressBar1.Style = ProgressBarStyle.Marquee;
     progressBar1.MarqueeAnimationSpeed = 15;
 
     Thread.Sleep(10000);

     progressBar1.Style = ProgressBarStyle.Marquee;
     progressBar1.MarqueeAnimationSpeed = 0;

     app(0);
}
Bei diesem Code wird einfach nur die Progressbar ohne irgendwas angezeigt, also mein nächster Versuch mit einer for + if Schleife (Abfrage), der jede Sekunde den int (i) um 1 hochschaltet:

Code:
 for (int i = 0; i <= 10; i++)
            {
                
                if(i < 10)
                {
                    bool o = true;

                    if (o)
                    {
                        progressBar1.Style = ProgressBarStyle.Marquee;
                        progressBar1.MarqueeAnimationSpeed = 15;
                    }
                    
                }

                if (i >= 10)
                {
                    bool o = false;

                    if (!o)
                    {
                        progressBar1.Style = ProgressBarStyle.Marquee;
                        progressBar1.MarqueeAnimationSpeed = 0;
                    }


                }


                Thread.Sleep(1000);
                i++;
Wenn Ich jetzt das Projekt kompiliere dauert's ein paar Sekunden bis das Fenster sichtbar wird und dann passiert auch nichts, was mach Ich falsch?

#Edit: Habe jetzt beim 2. Code folgendes geändert:

Code:
for (int i = 1; i <= 10; i++)
also i = 1. Jetzt dauerts auch kurz bis das Fenster sichtbar ist, nur jetzt bleibt der Balken in Action und stoppt nicht ... ?
Queen^ is offline  
Old 07/05/2014, 20:48   #2


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
Mit Thread.Sleep pausierst du hier vermutlich den UI Thread, also den Thread, auf dem die Progress Bar erstellt wurde. Wenn der Thread einfriert (und das tut er bei Thread.Sleep) friert auch deine Progress Bar ein und wird den Wert nicht ändern bzw. anzeigen. Vermutlich wurden auch alle deine Controls in diesem Thread erstellt, weswegen dann die komplette UI einfriert.

Wozu brauchst du das Sleep überhaupt? Du könntest das mit einem BackgroundWorker ausführen und die UI über den UI Thread Dispatcher ändern lassen, hier mehr dazu:
Mostey is offline  
Old 07/06/2014, 00:32   #3
 
Beni's Avatar
 
elite*gold: 0
The Black Market: 171/0/0
Join Date: Jul 2009
Posts: 3,268
Received Thanks: 784
[C#] Problem mit For (& If) Abfrage

if(o==true) ? kanns daran liegen? bzw if(o==false) ? du hast nur if(o), ich weis nicht ob das geht&habs auch noch nie so gesehen...

Außerdem:
Die abfrage mit dem bool brauchst du eigendlich nicht. Du kannst mit dem if (i<10) {...} bzw else {...} arbeiten. Mehr brauchst du in meinen Augen nicht
Beni is offline  
Old 07/06/2014, 11:06   #4
 
elite*gold: 46
Join Date: Oct 2010
Posts: 782
Received Thanks: 525
Quote:
Originally Posted by Beni​​ View Post
if(o==true) ? kanns daran liegen? bzw if(o==false) ? du hast nur if(o), ich weis nicht ob das geht&habs auch noch nie so gesehen...

Außerdem:
Die abfrage mit dem bool brauchst du eigendlich nicht. Du kannst mit dem if (i<10) {...} bzw else {...} arbeiten. Mehr brauchst du in meinen Augen nicht
Natürlich geht das und ich sehe eigentlich nie if(someBool == true). Bei dem 2. Teil hast du Recht. Dafür extra einen bool zu machen ist komplett unnötig. Den Rest hat Mostey schon gesagt.
th0rex is offline  
Old 07/06/2014, 12:51   #5
 
.SkyneT.'s Avatar
 
elite*gold: 273
Join Date: Sep 2010
Posts: 1,831
Received Thanks: 786
ab .NET 4.5:
Code:
public async void executeDelayed(Action action, int time)
{
   await Task.Delay(time);
   action();
}
.SkyneT. is offline  
Thanks
1 User
Old 07/07/2014, 14:34   #6
 
elite*gold: 61
Join Date: Jun 2014
Posts: 71
Received Thanks: 15
Quote:
Originally Posted by omitma View Post
Natürlich geht das und ich sehe eigentlich nie if(someBool == true). Bei dem 2. Teil hast du Recht. Dafür extra einen bool zu machen ist komplett unnötig. Den Rest hat Mostey schon gesagt.
Ja, das mit dem if(wert) geht. Mit dem Bool ist unnötig, ja.

Aber Ich suche mal noch n bisschen weiter^^
Queen^ is offline  
Old 07/08/2014, 19:48   #7
 
L & M's Avatar
 
elite*gold: 0
Join Date: Jul 2014
Posts: 5
Received Thanks: 2
Mach doch einfach einen zweiten Thread für deine Progressbar auf, der nicht über die UI läuft, wie Mostey schon beschrieben hat, kann es dadurch kommen.

- L & M
L & M is offline  
Reply


Similar Threads Similar Threads
Black Ops 2 Problem "Steam Daten Abfrage"
03/07/2014 - Call of Duty - 10 Replies
Bei Black Ops 2. wenn ich auf online klicke, dann lädt er erstmal 5 und sagt" Steam Daten Abfrage" danach sagt er das die server anscheinend nicht on sind ^^ Kann mir jemand helfen?
MySQL <=> Quest abfrage Problem
04/03/2013 - Metin2 Private Server - 12 Replies
Moin, Ich habe ein kleines Problem mit meiner Quest, und zwar wollte ich mit Hilfe einer mysql_query - Abfrage die Coins eines Accounts auslesen, nur leider klappt es nicht ganz... Hier mal der ausschnitt der Quest: elseif f==3 then say_title("Lagerverwalter:") say("Gebe nun den Spielernamen ein.") local name_of_char_to_check_coins = input()
bot abfrage
04/08/2011 - Ragnarok Online - 4 Replies
hallo ich habe beim server wo ich bin wenn man da in iein dun is eine botabfrage dann kommt ein bild man muss die zahl eingeben und dann kann man weiter machen wenn ich es aber mit openkore machen wie soll das gehen danke für die hilfe
[PHP]Mysql Abfrage Problem
08/30/2010 - Web Development - 4 Replies
Hallo zusammen, ich wollte mal fragen ob mit jemand hier helfen kann. Ich habe Folgende Funktion public function getStats() { if($this->getLogin()) { $sql = "SELECT * FROM character WHERE accountID = '".$this->getAccID()."'"; $stats = Game::getDB()->getFirstRow($sql);



All times are GMT +1. The time now is 05:42.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.