martedì 4 marzo 2008
Questa mattina ho ottenuto per la prima volta un errore dovuta ad una ContextSwitchDeadlock, la cui descrizione è illuminate:
The CLR has been unable to transition from COM context 0x1a4008 to COM context 0x1a4178 for 60 seconds. The thread that owns the destination context/apartment is most likely either doing a non pumping wait or processing a very long running operation without pumping Windows messages. This situation generally has a negative performance impact and may even lead to the application becoming non responsive or memory usage accumulating continually over time. To avoid this problem, all single threaded apartment (STA) threads should use pumping wait primitives (such as CoWaitForMultipleHandles) and routinely pump messages during long running operations.
Fino adesso, questo è il messaggio di errore più "strano" che mi sia mai capitato (N.B.: Si prega di prendere questo post con la dovuta ironia...).
Technorati Tag:
.NET,
Programming
Questo post cerca di fare un po' di chiarezza sugli esami da sostenere per aggiornare le certificazioni MCPD su .NET 2.0 alla versione 3.5. Chi ha già una certificazione MCPD Windows oppure Web deve sostenere un solo esame per il titolo corrispondente in .NET 3.5, mentre per l'aggiornamento della MCPD Enterprise Applications sono necessari due esami. Purtroppo, al momento Microsoft non è in grado di fornire un'indicazione su quando gli esami di upgrade saranno resi disponibili; attualmente, infatti, solo gli esami della serie Technology Specialist sono in procinto di essere rilasciati, mentre per gli altri è necessario attendere ancora.
Per maggiori dettagli rimando direttamente alla fonte.
Technorati Tag:
Certification
Partendo da questa pagina è possibile scaricare due video della serie How do dedicati a Team Foundation Server 2008:
In questa pagina è disponibile una tabella che elenca brevemente le nuove funzionalità disponibili nella Release Candidate 2 del Service Pack 3 di Windows XP.
Technorati Tag:
Windows,
Updates
Tempo fa avevo già parlato della sintassi abbreviata per la definizione delle proprietà in C# con Visual Studio 2008. Oggi ho provato ad utilizzare Reflector per vedere il codice che di fatto viene generato a tempo di compilazione quando si utilizza questa feature. Partendo dalla seguente classe:
public class TestClass
{
public int MyProperty { get; set; }
}
Quello che si ottiene è:
public class TestClass
{
// Fields
[CompilerGenerated]
private int <MyProperty>k__BackingField;
// Properties
public int MyProperty
{
[CompilerGenerated]
get
{
return this.<MyProperty>k__BackingField;
}
[CompilerGenerated]
set
{
this.<MyProperty>k__BackingField = value;
}
}
}
Dunque niente più di quello che ci aspetta: il compilatore genera un campo privato per gestire il valore della proprietà. Notiamo che il nome della variabile comincia con il carattere <: quando si scrive il codice "direttamente" nell'editor, non è possibile utilizzare questo carattere per i nomi delle variabili. Viene inoltre aggiunto l'attributo CompilerGenerated, grazie al quale è possibile "capire" che gli elementi su cui è applicato sono stati generati automaticamente dal compilatore.