генерировать токен доступа к паспорту laravel и обновлять токен без http-запроса

Посмотрев на свой код, дайте краткое описание того, что я буду делать:

Удалите обработчик ProgressChanged. Он предназначен для представления текущего статуса пользователю, которого вы не делаете. Вместо этого вызовите Items.Add в обработчик DoWork.

Создайте EventLog один раз. Это кажется более приятным и экономит вас от потенциального создания его в цикле, если вы не будете осторожны.

Вместо синтаксического анализа текста с регулярным выражением создайте специальный класс. Это действительно важно и сэкономит вам много боли, когда вам нужно более точное поведение или вообще не хотите показывать индекс. Регулярные выражения медленны, и данные, предназначенные для отображения пользователю, никогда не должны анализироваться. Вы должны использовать классы.

Используйте значащие имена. Я знаю, что вы не очистили код, но если вы хотите, чтобы кто-то помог вам через Интернет, вам действительно нужно.

Наконец, получите элемент по индексу. Если вы посмотрели на документацию , вы заметили бы , есть свойство индексатора, которое получает элемент напрямую по его индексу.

class EntryItem {
    public EntryItem (EventLogEntry entry) 
    {
        EntryIndex = entry.Index;
        ItemText = string.Format ("{0} - {1} - {2}     - {3}",
            entry.Index,
            entry.EntryType,
            entry.TimeWritten,
            entry.Source);
    }

    public string ItemText { get; private set; }
    public int EntryIndex { get; private set; }

    public override string ToString ()
    {
        return ItemText;
    }
}

private EventLog log = new EventLog {
    Log = "System"
};

private void eventLoader_DoWork (object sender, DoWorkEventArgs e)
{
    foreach (EventLogEntry entry in this.log.Entries)
        this.Dispatcher.BeginInvoke (() => eventListBox.Items.Add (new EntryItem (entry)));
}

private void eventListBox_SelectionChanged (object sender, SelectionChangedEventArgs e)
{
    EntryItem item = eventListBox.SelectedItem as EntryItem;
    if (item == null)
        return;

    var entry = log.Entries [item.EntryIndex];
    currentEntryLabel.Content = entry.Message;
}

0
задан Saeed 18 March 2019 в 15:14
поделиться