Just nu i M3-nätverket
Jump to content

Ändra variabel från statisk funktion.


Ahlberg81

Recommended Posts

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

 

Link to comment
Share on other sites

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]

Link to comment
Share on other sites

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 :)

 

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...