C++/CLI спрятать вызов Invoke
От: jyuyjiyuijyu  
Дата: 24.11.13 13:25
Оценка:
Всем привет

значит есть отдельный тред управляемый BackgroundWorker время от времени мне надо
читать значение в TextBox естественно делать это надо через Invoke

тоесть вот так просто из BackgroundWorker потока я не могу вызвать некую функцию проверки которая читает
значение из TextBox'а

if (check_Title())
{
}


но очень хочется чтоб это выглядело именно так... для этого пишу функцию пустышку цель которой вызвать
через Invoke уже настоящую функцию проверки

bool Form1::check_Title()
{
    return safe_cast<bool>(Invoke(gcnew Delegate(&Form1::check_Title_)));
}


bool Form1::check_Title_()
{
    // тут работаем с TextBox
}


получается просто ужасно надо писать две функции да еще и имена их дублируются....

обычные лямбды C++ в Invoke никак не подсунуть.... было бы идеально если бы это работало...
лямбду можно было бы писать по месту вызова Invoke...

как вы понимаете это только пример и обращаться надо к разным гуи контролам поэтому решение должно
быть универсальным... главная цель чтоб в месте вызова это смотрелось как обычный вызов функции без всяких
извращенств с Invoke и диких кастингов...

подскажите как это красиво причесать ?

спасибо
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.