Just nu i M3-nätverket
Gå till innehåll

Ändra variabel från statisk funktion.


Ahlberg81

Rekommendera Poster

Hej, då jag ej programmet på ganska länge och aldrig i C# så har jag en förmodligen ganska simpel fråga.

 

Jag har lagt in ett event i ett trådat objekt som kallar på en statisk funktion i StartClient formuläret där jag vill ha Överskriften ändrad, men det går ju dock inte ändra i variabler från statiska funktioner. Funderar på hur jag ska lösa det smidigast. Man kan ju typ göra en fuling... alltså lägga in en timer som kollar kör funktionen uppdatera överskrift med ett visst tidintervall men det känns ju väldigt budget. Man vill ju liksom att ändringen skall synas så fort i detta fallet connection infon till databas kopplingen ändras.

 

Verkar kanske lite grötigt men kommentera gärna så förklarar jag mer sen, har lite bråttom hem nu.

 

Mvh

Fredrik

 

Länk till kommentar
Dela på andra webbplatser

Anjuna Moon

Till att börja med är det ett enormt no-no att anropa statiska klasser/metoder i ett flertrådigt system. Känner du inte till detta, den simplaste av multithread-reglerna, så rekommenderar jag att du undviker att nyttja flera trådar så länge. Ovanstående är bara den enklaste av reglerna, många snårigare problem kan uppstå om man verkligen inte vet vad man håller på med. Läs gärna på om thread-safety, locking och (beroende på vad du håller på med) semaforer. Det är även viktigt att förstå hur en processor fungerar och hur operativsystemet hanterar lagring av data i flertrådiga situationer (läs mikroprogrammering och registerlagring).

Det är ett minimum att du förstår exakt hur detta fungerar innan du börjar använda det

 

men det går ju dock inte ändra i variabler från statiska funktioner

Vad menar du, det är klart det går. Förklara vad du tänker på i detalj.

 

Du säger att du är ny på C# men programmerat tidigare, vad använde du tidigare och hur nära OS:et var du på den tiden? Jag utvecklar gärna allt ovan, men detaljera först situationen.

[inlägget ändrat 2009-04-01 20:43:14 av Anjuna Moon]

Länk till kommentar
Dela på andra webbplatser

Oj då, såg visst att jag lagt den i fel forum dessutom.

 

Jo alltså, nu har jag inte felmeddelandet här då jag inte är på jobbet men vad jag förstår så är det att jag anropar till en funktion som sätter egenskapen på ett objekt vilket jag iof förstår kan vara lite knepigt då det anropas från en generell funktion. Men frågan är hur man löser det smidigast.

 

Kommer inte ihåg exakt men tror det såg ut något liknande.

tex,

static public void updateCaption(string _newCaption)
{
   setCaption(_newCaption);
}

private void setCaption( string _newText) 
{
   this.text = _newText;
}

 

 

//Fredrik :)

 

Länk till kommentar
Dela på andra webbplatser

Anjuna Moon

Hinner inte titta på detta just nu, men jag överdrev ganska hårt i mitt påstående om anrop av statiska metoder, men man bör vara försiktig beroende på vad som görs i dessa. Får jag tid senare under dagen så återkommer jag.

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...