Должен ли я проверить InvokeRequired до Invoke ()? - PullRequest
0 голосов
/ 01 марта 2019

При написании кода, который будет использоваться из разных частей моего приложения, у меня иногда есть код, который может выполняться в потоке пользовательского интерфейса или нет.Я хотел бы избежать накладных расходов на Invoking в главном потоке из другого потока, который уже находится в основном потоке.Простой способ - сначала проверить InvokeRequired .Но действительно ли это нужно?Я бы ожидал, что система сама избежит накладных расходов изнутри Invoke .

Это правда, что я могу просто вызвать Invoke, и система будет избегать "Invoking", если в этом нет необходимости?

1 Ответ

0 голосов
/ 01 марта 2019

Согласно Гансу Пассанту в комментарии код для Invoke достаточно , чтобы не вызывать его при выполнении в главном потоке.См. исходный код (ссылка предоставлена ​​Гансом).

А вот цитата из этой ссылки:

Мы не хотим ждать, если мыв том же потоке, иначе мы заходим в тупик.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...