У меня возникла проблема с вызовом, которую я не могу решить. Я постараюсь быть настолько тщательным в своем описании, насколько это возможно, но я новичок в этом, так что медведь со мной и дайте мне знать, если вам нужна дополнительная информация.Метод, выполняющийся дважды после вызова
У меня есть фоновый поток, который при запросе отключит кучу флажков на форме, созданной в основном потоке. Чтобы сделать это, мне нужно безопасно перекрещивать потоки с помощью invoke
и делегата, но я должен делать это неправильно. В нижней строке, когда я проверяю это в отладчике, я вижу, что он дважды проходит через часть ACTION кода, если InvokeRequired
. Я могу обойти это с помощью брекетинга ACTION с помощью else
, и хотя он не будет проходить через else
дважды, он все равно попытается снова пройти этот метод.
delegate void ManualCurtainShuttoffHandler();
public void ManualCurtainShutoff()
{
if (InvokeRequired)
{
Invoke(new ManualCurtainShuttoffHandler(ManualCurtainShutoff));
}
// ACTION: Disable check boxes
}
Я просто хотел бы знать, почему он проходит через метод два раза. Дайте мне знать, если вам нужна дополнительная информация, и я был бы рад поделиться ею с вами.