static void RepeatKey(RepeatingKey keyInfo)
 {
     repeatingKeyQueue.Enqueue(keyInfo);
     if (!keyRepeater.IsBusy && repeatingKeyQueue.Count > 0)
     {
         currentRepeatingKey = repeatingKeyQueue.Dequeue();
         keyRepeater.RunWorkerAsync(currentRepeatingKey);
     }
 }
        static void keyRepeater_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            currentRepeatingKey = RepeatingKey.Empty;

            if (!keyRepeater.IsBusy && repeatingKeyQueue.Count > 0)
            {
                currentRepeatingKey = repeatingKeyQueue.Dequeue();
                keyRepeater.RunWorkerAsync(currentRepeatingKey);
            }
        }