Tuesday, July 17, 2007

L'idea mi è venuta usando SWT, che ha una classe BusyIndicator atta a "decorare" una qualsiasi operazione con il mouse a clessidra...

Posto il codice senza formattazione, sorry...

namespace Helpers
{
    public static class BusyIndicator
    {
        private static readonly AsyncCallback   nullCallback    = delegate { };
        private static readonly object[]        emptyArray      = new object[] { };

        public static void ShowWhile(Control control, ThreadStart method)
        {
            if (method == null)
                throw new ArgumentException("Missing method definition", "method");

            if (control == null)
            {
                method.BeginInvoke(nullCallback, emptyArray);
                return;
            }

            control.Cursor = Cursors.WaitCursor;
            MethodInvoker callback = delegate   { control.Cursor = Cursors.Default; };
            AsyncCallback invoke   = delegate   { control.Invoke(callback); };
            method.BeginInvoke(invoke, emptyArray);           
        }
    }
}

L'uso è fin troppo banale...
BusyIndicator.ShowWhile(this, delegate
{
    // Do stuff
}

Critiche, suggerimenti, insulti come commenti al post, please :)

P.S: è mezz'ora che provo ad inserirlo su CodeKeep, ma al momento di postare... RuntimeError :(

Technorati Tags: ,

Powered by ScribeFire.

 
Segnalo che sul blog di DeveloperZen è iniziata una serie di post per certi versi simile ai mitici Quiz Sharp di Adrian Florea.

Il primo quiz (sul pattern Singleton) l'ho trovato particolarmente interessante, in quanto la soluzione (abbastanza scontata) usando il "Double-Check Locking" pare non essere poi così corretta.

La discussione completa sul quiz è a parer mio interessante, e vale la pena leggersela, così come vale la pena dare una occhiata spesso all'homepage di DotNetKicks, dove vengono segnalati continuamente post interessanti :)

Technorati Tags: , ,

Powered by ScribeFire.