Катастрофический отказ, сообщающий для Java

dispatch_after() - это стандартный способ задержки действий.

indicator.startAnimating()

let delay = 4.5 * Double(NSEC_PER_SEC)
let time = dispatch_time(DISPATCH_TIME_NOW, Int64(delay))
dispatch_after(time, dispatch_get_main_queue()) {
    indicator.stopAnimating()
}

См .: dispatch_after - GCD in swift?


Обновление для Swift 3.0

indicator.startAnimating()

let delay = Int(4.5 * Double(1000))
DispatchQueue.main.after(when: .now() + .milliseconds(delay)) {
    indicator.stopAnimating()
}

Однако, Я думаю, что в духе Swift 3.0 расширение DispatchQueue было бы лучшим решением.

extension DispatchQueue {
    func delay(_ timeInterval: TimeInterval, execute work: () -> Void) {
        let milliseconds = Int(timeInterval * Double(1000))
        after(when: .now() + .milliseconds(milliseconds), execute: work)
    }
}

Это оставляет нас с очень хорошим

indicator.startAnimating()

DispatchQueue.main.delay(4.5) {
    indicator.stopAnimating()
}

Обновление 2

Копаясь в бета-версию Xcode 8.0, я нашел public func +(time: DispatchTime, seconds: Double) -> DispatchTime. Итак, я думаю, что это действительно так ...

indicator.startAnimating()

DispatchQueue.main.after(when: .now() + 4.5) {
    indicator.stopAnimating()
}

Я не думаю, что есть необходимость в расширении DispatchQueue для чего-то такого уже чистого.

-

Обновление для Swift 3.1

Существует новый синтаксис для Swift 3.1. Они просто любят что-то менять, не так ли?

indicator.startAnimating()

DispatchQueue.main.asyncAfter(deadline: .now() + 4.5) {
    indicator.stopAnimating()
}

6
задан Sung Kim 18 May 2009 в 22:49
поделиться

2 ответа

Аварийный дамп - это просто текстовый файл. Вы можете написать сценарий, который неоднократно запускает вашу проблему и отправляет вам письмо / уведомление о любых новых аварийных дампах.

1
ответ дан 17 December 2019 в 18:19
поделиться

Начиная с простого Если вы хотите сообщать пользователю об ошибках и исключениях в Java Swing Application, это хорошая библиотека zeus-jscl , которая имеет несколько полезных компонентов:

gr.zeus.ui.JMessage - Отображает простые сообщения и трассировка стека исключения и многое другое gr.zeus.ui.JConsolePane - Консоль Java для замены окна командной строки. Перенаправляет stdout и stderr и т. Д.

Это никуда не отправляется, это просто удобно локально.

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

Вы можете загрузить исходные коды NetBeans и скопировать то, что вам нужно. Прочтите здесь, как

2
ответ дан 17 December 2019 в 18:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: