Это относится к моему предыдущему сообщению here, где я спросил, почему я должен использовать SynchronizationContext .Send или .Post, только через обычный .Invoke или .BeginInvoke в моей основной форме пользовательского интерфейса.Передача нескольких параметров SendOrPostCallback в SynchronizationContext
Моя проблема заключается в том, что делегат, который я использовал с Invoke, связан с методом, который принимает два параметра: одну строку, содержащую фактический текст, на который должен быть заменен ярлык, и другая строка, которая содержит имя метки текст которого должен измениться.
Проблема в том, что .Send и .Post принимает только делегат SendOrPostCallbake в качестве своего ввода, и этот делегат может быть связан только с методами, в которых для каждого объекта есть один объект. Поскольку все может быть упаковано в объект, мне было рекомендовано либо создать класс для упаковки моих переменных (этот параметр я понимаю, как реализовать), а другой - использовать лямбда-выражения с закрытием. Это последнее, что я не понимаю, как это сделать.
Любое руководство по использованию лямбда-выражений в _synch.Send(), когда мой базовый метод имеет два строковых параметра, будет очень благодарен.
EDIT. Основываясь на рекомендациях в комментариях, я смог ответить на свой вопрос. Я разместил решение ниже для будущих посетителей.
Так что, когда вы сделали ваши основные исследования по этой теме, что вы не понимаете, что вы нашли? Существует * тонна информации о наличии на закрытии, которая легко доступна. – Servy
@Servy Давайте возьмем этот ресурс, например: http://stackoverflow.com/questions/595482/what-are-closures-in-c. Я не понимаю, как лямбда-выражения избавят меня от необходимости создавать целый новый класс для хранения моих двух строк (например, класса Person в примере). – Anders
Почему * * * вам нужно создать совершенно новый тип для хранения этих двух экземпляров, когда вы могли бы просто закрыть каждый из них, как показано прямо здесь, в этом примере? Обратите внимание, что 'p' не закрывается в этом примере; это параметр. 'id' - закрытая переменная. – Servy