Zėŋōfōbìå

6 aprile 2009

Remote debug e principio di indeterminazione

Filed under: C#, informatica — Tag:, , — Zeno @ 10:42

Su una macchina, e una soltanto, il nostro codice si scassa inevitabilmente.
L’applicativo funziona ovunque, su tutte le macchine che abbiamo provato. Non va benissimo, è ancora in fase di sviluppo, ma una macchina di un tecnico sembra refrattaria. O meglio, intollerante. L’applicativo parte correttamente, fa quello che deve fare, poi, dopo pochi secondi cade. Pesantemente.

Ma come? E’ codice .net 2.0, su un XP, tutto safe, come fa a scassarsi senza dare errori?

(more…)

Annunci

15 novembre 2007

Compatibilita dei Thread con C# 2.0

Filed under: C#, informatica, Linguaggi — Tag:, , , — Zeno @ 10:18

Fare il porting di una applicazione Windows Form C# 1.1 verso C# 2.0 comporta delle modifiche impegnative. Una delle difficoltà da affrontare riguarda il fatto che con C# 2.0 non è più possibile, da parte di un Thread diverso da quello di una certa form, di accedere ai suoi componenti grafici.

Le soluzioni sono due: correggere tutti gli accessi con degli Invoke oppure settare un flag di compatibilità con 1.1:

CheckForIllegalCrossThreadCalls = false;

4 aprile 2007

Delegati e Invoke in C# 2.0

Filed under: C#, informatica — Tag:, , , — Zeno @ 13:22

Il primo impatto con C# 2.0, tipicamente, è negativamente legato all’impossibilità di invocare dei metodi da thread differenti con un approccio diretto.

Supponiamo da un thread di dover modificare la label della form principale, segue una soluzione estremamente semplice:

myLabel.Invoke((MethodInvoker)delegate
{
    myLabel.Text = "What a great post";
});

Blog su WordPress.com.