Depressurizer.DlgProfile.StartThreadedNameUpdate C# (CSharp) Method

StartThreadedNameUpdate() private method

private StartThreadedNameUpdate ( ) : void
return void
        private void StartThreadedNameUpdate()
        {
            if( currentThreadCount > 0 ) return;

            int maxThreads = 1;

            Queue<UpdateJob> q = new Queue<UpdateJob>();
            for( int i = 0; i < lstUsers.Items.Count; i++ ) {
                UserRecord r = lstUsers.Items[i] as UserRecord;
                if( r != null ) {
                    q.Enqueue( new UpdateJob( i, r.DirName ) );
                }
            }

            int threads = ( maxThreads > q.Count ) ? maxThreads : q.Count;

            if( threads > 0 ) {
                currentThreadLock = new ThreadLocker();
                SetUpdateInterfaceRunning();
                for( int i = 0; i < threads; i++ ) {
                    Thread t = new Thread( this.NameUpdateThread );
                    currentThreadCount++;
                    t.Start( new UpdateData( q, currentThreadLock ) );
                }
            }
        }