Saturday, September 21, 2013

C#: Safely set the Text of a ToolStripItem across threads.


        /// <summary>
        ///     Safely set the <see cref="ToolStripItem.Text"/> of the ToolStripItem across threads.
        /// </summary>
        /// <param name="toolStripItem"></param>
        /// <param name="value"></param>
        public static void Text( this ToolStripItem toolStripItem, String value ) {
            if ( null == toolStripItem ) {
                return;
            }
            if ( toolStripItem.IsDisposed ) {
                return;
            }
 
            toolStripItem.OnThread( () => {
                if ( toolStripItem.IsDisposed ) {
                    return;
                }
                toolStripItem.Text = value;
                toolStripItem.Invalidate();
            } );
        }

No comments: