Делает MessageBox. Показать () автоматически Маршалл к Потоку UI?

Я пробовал то же самое с небольшим редактированием, найдите его ниже и дайте мне знать, подходит ли оно

df1 <- data.frame(fruit=c("apple", "Orange", "Pear"), location = c("Japan", "China", "Nigeria"), price = c(32,53,12))

objs = ls()

get(objs[1])[,1] # for values as a vector
[1] apple  Orange Pear  
Levels: apple Orange Pear

get(objs[1])[1] #for column subset
   fruit
1  apple
2 Orange
3   Pear
11
задан Community 23 May 2017 в 12:33
поделиться

4 ответа

Нет, это не Упорядочивает к потоку UI. Если бы Вы думаете об этом, для него не было бы возможно сделать так.

Возможно иметь больше чем один поток UI в приложении. Некоторые программы, такие как Internet Explorer, имеют много потоков UI. Какой поток UI.Show назвал бы выбором?

Также возможно использовать MessageBox. Покажите в приложении, которое не имеет никаких потоков UI. Можно очень хорошо назвать это в Консольном приложении, и оно будет работать.

MessageBox. Шоу покажет UI на потоке, от которого это называют. Если уже не будет насоса сообщения, работающего на потоке, то он установит временный для функционирования. Это разъединит его после того, как Выставочный вызов завершится.

17
ответ дан 3 December 2019 в 02:53
поделиться

Как правило Вы не должны делать работы GUI за пределами основного / потока приложения. Я сделал бы метод ShowMessageBox на родительской форме, которая может сделать Вызывание:

public DialogResult ShowMessageBox (String message, String caption)
{
    if (this.InvokeRequired) {
        return (DialogResult) this.Invoke (new PassStringStringReturnDialogResultDelegate (ShowMessageBox), message, caption);
    }
    return MessageBox.Show (this, message, caption);
}

public delegate DialogResult PassStringStringReturnDialogResultDelegate (String s1, String s2);

НО ТАКЖЕ И ИМЕЙТЕ В ВИДУ: при отладке многопоточного приложения для GUI, и Вы отлаживаете в потоке кроме основного / потока приложения, НЕОБХОДИМО ВЫКЛЮЧИТЬ опцию "Enable property evaluation and other implicit function calls", или иначе VS автоматически выберет значения локальных/глобальных объектов GUI ОТ ТЕКУЩЕГО ПОТОКА, который заставит приложение отказывать/приводить к сбою странными способами. Перейдите к Инструментам-> Опции-> Отладка для выключения той установки.

Извините за ограничения, но это взяло меня ДНИ для выяснения, почему я каждый раз, когда я пытался отладить свое приложение, которое это подвесит и затем разрушит.

8
ответ дан 3 December 2019 в 02:53
поделиться

Ну, я упорядочил бы и указал бы окно, если только так MessageBox может получить корректный фокус. Это могло бы быть, они просто не видят его, потому что это находится позади одной из Ваших форм и не знает, что должно быть на переднем плане.

5
ответ дан 3 December 2019 в 02:53
поделиться

Это приложение или сервис. Если это - сервис, возможно, это не настраивается с, 'Позволяют взаимодействие с настольным' разрешением.

Посмотрите свойства сервиса в сервисном апплете панели управления.

0
ответ дан 3 December 2019 в 02:53
поделиться
Другие вопросы по тегам:

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