Пример #1
0
        public void AsyncPrefetchFontNames()
        {
            IFontMap fontMapP = this.fontMap.CreateRef();

            Work.QueueWorkItem(delegate {
                try
                {
                    string[] strArray = fontMapP.ToArrayEx <string>();
                }
                catch (Exception)
                {
                }
                finally
                {
                    fontMapP.Dispose();
                }
            });
        }
Пример #2
0
 protected override void OnComboBoxGotFocus(object sender, EventArgs e)
 {
     if (!this.isPopulated)
     {
         this.isPopulated = true;
         using (new WaitCursorChanger(base.ComboBox))
         {
             string selectedItem = (string)base.ComboBox.SelectedItem;
             string str2         = null;
             ManualResetEventSlim gotFamilies = new ManualResetEventSlim(false);
             string[]             fontNames   = null;
             VirtualTask <Unit>   task        = TaskManager.Global.CreateVirtualTask(TaskState.Running);
             IFontMap             fontMapP    = this.fontMap.CreateRef();
             Work.QueueWorkItem(delegate {
                 try
                 {
                     fontNames = fontMapP.ToArrayEx <string>();
                 }
                 finally
                 {
                     fontMapP.Dispose();
                     try
                     {
                         gotFamilies.Set();
                     }
                     finally
                     {
                         task.SetState(TaskState.Finished);
                     }
                 }
             });
             if (!gotFamilies.Wait(0x3e8))
             {
                 new TaskProgressDialog {
                     Task             = task,
                     CloseOnFinished  = true,
                     ShowCancelButton = false,
                     Text             = PdnInfo.BareProductName,
                     Icon             = PdnInfo.AppIcon,
                     Text             = PdnResources.GetString("TextConfigWidget.LoadingFontsList.Text")
                 }.ShowDialog(base.ComboBox);
             }
             gotFamilies.Wait();
             base.ComboBox.BeginUpdate();
             base.ComboBox.Items.Clear();
             foreach (string str3 in fontNames)
             {
                 int num2 = base.ComboBox.Items.Add(str3);
                 if ((selectedItem != null) && DirectWriteFactory.FontNameComparer.Equals(selectedItem, str3))
                 {
                     str2 = str3;
                 }
             }
             if (str2 != null)
             {
                 base.ComboBox.SelectedItem = str2;
             }
             else
             {
                 base.ComboBox.SelectedItem = this.defaultFontName;
             }
             base.ComboBox.EndUpdate();
         }
     }
     base.OnComboBoxGotFocus(sender, e);
 }