Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 09:00

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

Advertisement



C# threading mit Invoke nur wie =)

Discussion on C# threading mit Invoke nur wie =) within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1
 
.Scare™'s Avatar
 
elite*gold: 66
Join Date: Jan 2012
Posts: 234
Received Thanks: 145
C# threading mit Invoke nur wie =)

hallo com, ich habe vor mein tool was ich geschriben habe in mehreren threads laufen zu lassen.

doch dabei stosse ich auf ein problem, ich habe eine if anweisung mit einer checkbox doch dies muss ich über invoke machen. doch ich bekomme es nicht hin.

habt ihr mir einen Vorschlag?

PHP Code:
if (checkBox3.Checked == true
Fehler:
Code:
Fehler	1	Für das nicht statische Feld, die Methode oder die Eigenschaft "WindowsFormsApplication1.Form1.checkBox3" ist ein Objektverweis erforderlich.	C:\Users\Achim\documents\visual studio 2012\Projects\WindowsFormsApplication1\WindowsFormsApplication1\Form1.cs	73	8	WindowsFormsApplication1
.Scare™ is offline  
Old 08/26/2012, 18:16   #2
 
elite*gold: 258
Join Date: May 2010
Posts: 847
Received Thanks: 3,940
Code:
checkBox3.Invoke( new MethodInvoker(() =>
                {
                    // dein code
                    if (checkBox3.Checked == true) 
                    // ....
                }));
-PinkiWinki- is offline  
Thanks
1 User
Old 08/26/2012, 18:20   #3
 
.Scare™'s Avatar
 
elite*gold: 66
Join Date: Jan 2012
Posts: 234
Received Thanks: 145
danke, doch leider geht das auch nicht.

so habe ich es bisher:

PHP Code:
checkBox3.Invoke( new MethodInvoker(() => {
            if (
checkBox3.Checked == true)
            {
                
gbname "1";
            }
            else
            {
                
gbname "2";
            }

})); 
.Scare™ is offline  
Old 08/26/2012, 18:36   #4
 
elite*gold: 258
Join Date: May 2010
Posts: 847
Received Thanks: 3,940
Sorry mein Fehler, hab mir die Fehlermeldung nicht angeschaut . Jedenfalls läuft dein Thread in einer statischen Methode weshalb du nicht einfach mit checkBox3 auf das Element der Instanz zugreifen kannst.

Eine Möglichkeit wäre:

Thread mit Hilfe von Lambda erstellen
Code:
new Thread(new ThreadStart(() =>
                {
                   
                    checkBox1.Invoke(new MethodInvoker(() =>
                    {
                         //dein code
                    }));
                })).Start();
oder du übergibst ein Objekt deiner Form Instanz an den Thread über Parameter und führst dein Code über eine Methode aus die "public" ist.

Code:
new Thread(new ParameterizedThreadStart(meinThread)).Start(this);
Code:
static void meinThread(object o)
        {
            Form1 frm = (Form1)o;
            frm.MeinCodeStuff();
        }

        public void MeinCodeStuff()
        {
            if (InvokeRequired)
            {
                // Wir brauchen einen Invoke um an den GUI Thread zu kommen!
                Invoke(new MethodInvoker(MeinCodeStuff));
                return;
            }

            // mein code
            if (checkBox1.Checked)
                MessageBox.Show("bla");
        }
-PinkiWinki- is offline  
Thanks
1 User
Old 08/26/2012, 18:39   #5
 
elite*gold: 0
Join Date: May 2010
Posts: 793
Received Thanks: 268
um eine Eigenschaft abzufragen muss man im normalerweise kein invoke benutzen das muss man nur, wenn man den Wert setzten will.
in diesem Fall musst du es also nicht.
nkkk is offline  
Thanks
1 User
Old 08/26/2012, 18:45   #6
 
.Scare™'s Avatar
 
elite*gold: 66
Join Date: Jan 2012
Posts: 234
Received Thanks: 145
ja, das verstehe ich eben auch nicht ich frage da ja nur ob die chekbox aktiviert ist oder nicht...

erst weiter unten muss ich dan div. werte in eine Textbox schreiben.

finde dies echt grad schlimm, das es in VB z.b. so vieles einfacher ist als hier in c#....
.Scare™ is offline  
Old 08/27/2012, 13:23   #7
 
BlackHybrid's Avatar
 
elite*gold: 52
The Black Market: 101/0/0
Join Date: Oct 2010
Posts: 1,998
Received Thanks: 389
Du könntest Theoretisch auch eine statische Variable verwenden die du beim setzen bzw. dem Entfernen des Hakens veränderst und auf die aus dem Thread zugreifen.
BlackHybrid is offline  
Old 08/27/2012, 15:40   #8
 
.Scare™'s Avatar
 
elite*gold: 66
Join Date: Jan 2012
Posts: 234
Received Thanks: 145
hm, okayyy, ich habe gesehen das das Problem nor dann kommt wen ich eine public static void mache

doch wen ich dies nicht mache kann ich nicht mit mehreren threads arbeiten....

warum muss das in c#so dumm sein wobei es doch bei vb.net so leicht geht...

hoffe es kann mir jemand ein kleines Beispiel dazugeben.

danke
.Scare™ is offline  
Old 08/27/2012, 16:03   #9
 
elite*gold: 258
Join Date: May 2010
Posts: 847
Received Thanks: 3,940
Ich hab dir bereits ein Beispiel gepostet... Jetzt musst du nur noch verstehen und am besten erstmal C# ordentlich lernen.
-PinkiWinki- is offline  
Old 08/27/2012, 20:03   #10
 
elite*gold: 0
Join Date: May 2010
Posts: 793
Received Thanks: 268
du brauchst für mehrere threads kein "static public void"
nkkk is offline  
Old 08/28/2012, 16:08   #11
 
.Scare™'s Avatar
 
elite*gold: 66
Join Date: Jan 2012
Posts: 234
Received Thanks: 145
Quote:
Originally Posted by -PinkiWinki- View Post
Ich hab dir bereits ein Beispiel gepostet... Jetzt musst du nur noch verstehen und am besten erstmal C# ordentlich lernen.
ja, Vielen dank. Ich habe dies verstanden und auch umgesetzt. doch der Fehler liegt an dem Static. sobald ich es mit static mache geht es nicht mehr.

eine Kommunikation mit der form geht prima.

Quote:
Originally Posted by nkkk View Post
du brauchst für mehrere threads kein "static public void"
hmm, wen ich es ohne static mache dan bekomme ich einen Fehler bei den Thread's... ich schaus nochmals an und editiere die Fehler.

mfg und danke für die Hilfe
.Scare™ is offline  
Reply


Similar Threads Similar Threads
C++ Threading
03/24/2012 - CO2 Programming - 13 Replies
Anybody got some good threading tutorials in c++? #Edit Using boost would be fine?
Threading
11/18/2011 - CO2 Private Server - 10 Replies
What should I do? A thread for every map that's used by players, a global thread for all players or a single thread for every player.
Multi Threading
08/18/2011 - CO2 Private Server - 6 Replies
I know it's not Conquer related like that, but Multi Threading is a very big part, when developing Conquer PServers. Source: Managed Threading Best Practices
[C++] Problem with threading
05/17/2009 - CO2 Programming - 2 Replies
Actually the problem is more like with passing a function as pointer to the CreateThread or _beginthreadex, BOOL Connect() { if(m_Enabled != TRUE) return FALSE; sockaddr_in addr; addr.sin_family = AF_INET;
[C#] Cross-Threading ?
10/14/2008 - .NET Languages - 7 Replies
Hello, Is there a flag or whatever that lets me use crossthreading freely? Without the help of a Workerthread. Whenever I try to change a variable it doesn't let me because Crossthreading isn't safe (eg. accessing the variables from other threads), but It's also hard to find a solution for this. I'm starting another thread that contains a function to download the source code of another page and process the wanted information into variables, however I cannot do that with a thread. The only...



All times are GMT +1. The time now is 09:00.


Powered by vBulletin®
Copyright ©2000 - 2026, 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 ©2026 elitepvpers All Rights Reserved.