Маркировка. Текстовое изменение заблокировано?

Если вы хотите проверить экземпляры, запустите этот фрагмент кода и посмотрите на вывод:

import static java.lang.System.identityHashCode;

public class Program {
    public static void main(String... args) {
        String x = new String("xyz");
        String y = "abc";
        String z = x + y;

        System.out.printf("x: %d | %d\n", identityHashCode(x), identityHashCode(x.intern()));
        System.out.printf("y: %d | %d\n", identityHashCode(y), identityHashCode(y.intern()));
        System.out.printf("z: %d | %d\n", identityHashCode(z), identityHashCode(z.intern()));
    }
}

У меня есть следующий вывод, используя jdk1.7.0_67 :

x: 414853995 | 1719175803
y: 1405489012 | 1405489012
z: 1881191331 | 1881191331

Это всего 4 String экземпляров ...

1
задан Donut 17 June 2009 в 21:03
поделиться

3 ответа

Вы блокируете поток графического интерфейса пользователя, что препятствует его обновлению. Вы можете вызвать lblStatus.Refresh () или переместить ожидание в фоновый поток (что в конечном итоге является правильным решением).

2
ответ дан 3 September 2019 в 01:23
поделиться

Это проблема с потоками. Вы можете сделать это в отдельных потоках или в фоновом потоке. Один из подходов, который я видел, - это Application.DoEvents (), хотя я обычно избегаю этого вызова.

0
ответ дан 3 September 2019 в 01:23
поделиться

Обновление графического интерфейса пользователя не может произойти, пока вы не завершите обработку в потоке переднего плана и не отпустите его. Вам необходимо выполнить восстановление в фоновом потоке, чтобы позволить потоку переднего плана продолжить обновление графического интерфейса. Рассмотрите возможность помещения кода восстановления в отдельный метод и использования ThreadPool.QueueUserWorkItem () и передачи метода восстановления. Это запустит ваш метод восстановления в потоке пула потоков.

Если вам нужен больший контроль над потоком и уведомление о его завершении, вы можете использовать BackgroundWorker

0
ответ дан 3 September 2019 в 01:23
поделиться
Другие вопросы по тегам:

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